Это своего рода расширение вопроса mysql отсутствует или значение = 0?
У меня есть две базы данных, одна из которых содержит информацию о виджетах, а другая - их расположение в соответствии с модулем. На странице у меня есть списки для размещения этих виджетов, таких как верхний колонтитул, контент, боковая панель и нижний колонтитул. Также есть список виджетов, которые не используются. Вот где у меня проблема.
Вот MySQL, который я использую:
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.module_id <> '2'
Здесь отображаются все виджеты, которые не имеют module_id, равного 2. Поэтому, если я помещу один из виджетов в другой список, он все равно будет отображаться в списке неиспользуемых виджетов, поскольку он также используется другим виджетом.
Вот таблица widget_layouts:
|Module_id | Widget_id | Position | Weight|
-------------------------------------------
|2 |3 |1 |0 |
|1 |9 |3 |3 |
|1 |8 |3 |2 |
|1 |3 |2 |1 |
Итак, вот вопрос:
Как отобразить список виджетов, которые не используются модулем 2 или не существуют?
EDIT:
Я попытаюсь выяснить, что я пытаюсь сделать. Я хочу, чтобы список отображал виджеты, которых нет в списке, и виджеты, не используемые модулем 2, но если он используется модулем 2, не отображать этот виджет.
У меня есть два списка, один для контента и один, который отображает доступные виджеты. Поэтому, когда я перетаскиваю виджет 3 из списка виджетов в список контента. Затем для обновления браузера отображаются два виджета 3, один в списке контента и один в списке доступных.
Так как мне показать виджеты, которых нет в базе данных, и если виджет используется модулем 2, он не отображается в доступном списке?