Запрос который меня мучает.

Daenlou

Новичок
Запрос который меня мучает.

Сорри тему четко не сформулировать.

есть база, допустим

prod prop

яблоко красное
яблоко красное
яблоко красное
дыня желтая
дыня желтая
груша желтая
груша зеленая

Мне нужно получить prod у которого значение prod не идентично, в данном случае это груша.

К сожалению база довольно объемная, руками не посмотреть. В логике добавления информации уже проверку встроили. Но вот такие казусы надо найти и исправить.

Или предется руками (скриптом) разгребать?
 

BRat

o_0
PHP:
SELECT prod, prop FROM table_name AS tbl1 LEFt JOIN table_name AS tbl2 USING(prod) WHERE tbl1.prop <> tbl2.prop
 

Daenlou

Новичок
Запрос выдает
Column: 'release_id' in field list is ambiguous

Погуглил и нашел вот это http://bugs.mysql.com/bug.php?id=18080 у меня MySQL - 3.23.58
 

Daenlou

Новичок
Поигрался с квотированием не помогло. ну все равно спасибо за попытку
 

Апельсин

Оранжевое создание
у тебя в нескольких таблицах есть столбец с таким именем и MySQL сервер не телепат, чтобы знать какой именно ты имеешь в виду.
Имя таблицы надо указывать.
 

Daenlou

Новичок
release_id уникален в пределах базы.

SELECT track.`release_id`, `prop` FROM track AS tbl1 LEFt JOIN track AS tbl2 USING(track.`release_id`) WHERE tbl1.`prop` <> tbl2.`prop` говорит
Unknown table 'track' in field list
 

hermit_refined

Отшельник
Daenlou
Во-первых, в USING указывается только имя поля (общее для объединяемых таблиц).
Во-вторых, у вас уже нет в запросе таблицы track, вы её обозвали tbl1 (и дубль - как tbl2).

P.S. Название темы - шикарное, мне очень понравилось.
 

SelenIT

IT-лунатик :)
А так не пойдет? [sql]SELECT *
FROM track
GROUP BY prod
HAVING count( DISTINCT prop ) >1[/sql]
 

Daenlou

Новичок
SELECT track.`release_id`, `prop` FROM track AS tbl1 LEFt JOIN track AS tbl2 USING(release_id) WHERE tbl1.`prop` <> tbl2.`prop`

Unknown table 'track' in field list

Еще круче стало )
 

Апельсин

Оранжевое создание
Автор оригинала: Daenlou
release_id уникален в пределах базы.

SELECT track.`release_id`, `prop` FROM track AS tbl1 LEFt JOIN track AS tbl2 USING(track.`release_id`) WHERE tbl1.`prop` <> tbl2.`prop` говорит
Unknown table 'track' in field list
Он у вас не уникален в запросе. Вы используете 2 логические таблицы tbl1 и tbl2 каждая из которых имеет столбец release_id.
 

Daenlou

Новичок
Под утро думать уже не хотелось, решил вопрос в лоб. Поставил на коленке Mysql 5.0.26 импортнул данные и воспользовался советом Brat'a за что ему огромный респект.
 
Сверху