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

  • Автор темы Автор темы Daenlou
  • Дата начала Дата начала

Daenlou

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

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

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

prod prop

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

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

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

Или предется руками (скриптом) разгребать?
 
PHP:
SELECT prod, prop FROM table_name AS tbl1 LEFt JOIN table_name AS tbl2 USING(prod) WHERE tbl1.prop <> tbl2.prop
 
Запрос выдает
Column: 'release_id' in field list is ambiguous

Погуглил и нашел вот это http://bugs.mysql.com/bug.php?id=18080 у меня MySQL - 3.23.58
 
Поигрался с квотированием не помогло. ну все равно спасибо за попытку
 
у тебя в нескольких таблицах есть столбец с таким именем и MySQL сервер не телепат, чтобы знать какой именно ты имеешь в виду.
Имя таблицы надо указывать.
 
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
 
Daenlou
Во-первых, в USING указывается только имя поля (общее для объединяемых таблиц).
Во-вторых, у вас уже нет в запросе таблицы track, вы её обозвали tbl1 (и дубль - как tbl2).

P.S. Название темы - шикарное, мне очень понравилось.
 
А так не пойдет? [sql]SELECT *
FROM track
GROUP BY prod
HAVING count( DISTINCT prop ) >1[/sql]
 
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.
 
Под утро думать уже не хотелось, решил вопрос в лоб. Поставил на коленке Mysql 5.0.26 импортнул данные и воспользовался советом Brat'a за что ему огромный респект.
 
Сверху