Tables _________________________ _________________________ |__________items__________| |_______readStatus________| |___itemId___|____data____| |___itemId___|___status___| | 1 | cats | | 1 | 1 | | 2 | dogs | | 2 | 1 | | 3 | fish | | | | ------------------------- -------------------------
У меня есть две таблицы MySQL, похожие на приведенные выше. Мне нужно получить записи из таблицы item
, которые не имеют соответствующего status
1
в таблице readStatus
. Поэтому в этом примере мне нужна запись, где data
- fish
. Я не очень хорошо знаком с SQL, так что я точно не знаю, как получить об этом, но на основе других вопросов, я пришел с этим:Выбрать Элементы, не соответствующие им Соответствующие товары в другой таблице
SELECT *
FROM items
INNER JOIN
readStatus
ON items.itemId = readStatus.itemId
WHERE readStatus.status != 1
Это не работает, хотя, потому что он пропускает ни одной записи в таблице items
, которые не имеют соответствующей записи в таблице readStatus
. Добавление status
0
записей для поиска не является вариантом, так как в конечном итоге оно создаст миллионы записей. Также похоже, что в phpMyAdmin он объединяет записи в один вывод, который я действительно не хочу, но это не разбойник.
Любая помощь приветствуется.
Спасибо! Это решило проблему, и я узнал о «LEFT JOIN» – AkBKukU