MySQL не в или значение = 0? - PullRequest
       28

MySQL не в или значение = 0?

0 голосов
/ 21 декабря 2009

База данных 1 называется виджетами, в ней есть «id» и «title». База данных 2 называется widget-layouts и содержит "module-id", "widget-id", "position" и "weight".

То, что я пытаюсь сделать, это проверить, существует ли widgets.id в widget-layout.widget-id и если да, то действительно ли widget-layouts.position = 0. Я также хочу получить значения виджетов которые не существуют в виджет-макетах.

Вот запрос mysql, с которым я работал.

SELECT * FROM виджетов, виджетов-макетов ГДЕ (widge-layouts.position = '0' AND widgets.id = widget-layouts.widget-id) ИЛИ widgets.id НЕ В (ВЫБРАТЬ * ОТ виджет-макеты)

С помощью этого запроса я получаю огромный список виджетов, где каждый виджет отображается несколько раз.

Есть идеи по этому поводу?

Ответы [ 2 ]

0 голосов
/ 21 декабря 2009
SELECT * FROM widgets LEFT JOIN widget-layouts on widget-id = id WHERE position = 0

должен показать те, которые существуют и имеют позицию = 0

SELECT * FROM widgets RIGHT JOIN widget-layouts on id = widget-id where id is NULL

должен отображать те, которые существуют только в макетах виджетов

0 голосов
/ 21 декабря 2009
 SELECT *
 FROM widgets AS w
     LEFT JOIN widget-layouts AS wl
         ON w.id = wl.widget-id
 WHERE wl.widget-id IS NULL
     OR wl.position = '0'      
...