Строки запроса MySQL, которые находятся в table_b, а не в table_a - PullRequest
0 голосов
/ 05 июля 2010

Я делаю этот запрос, чтобы получить строки, которые находятся в table_b, а не в table_a:

SELECT table_b.* FROM table_b
LEFT JOIN table_a ON table_b.id = table_a.id
WHERE table_a.item_id IS NULL

Это работает нормально, но мне нужно другое условие для применения к table_a. Мне нужно сравнивать только те строки, в которых столбец X равен идентификатору 3, а не сравнивать всю таблицу. Есть идеи?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 05 июля 2010

Я не уверен, что вы ищете столбец x таблицы_a или столбец x таблицы_b, но идея заключается в том, чтобы добавить это в предложение join ON:

LEFT JOIN table_a ON table_b.id = table_a.id and table_a.id = 3
0 голосов
/ 05 июля 2010

Попробуйте это ...

SELECT table_b.* 
FROM table_b
LEFT JOIN table_a 
  ON table_b.id = table_a.id
  AND table_a.X = 3
WHERE table_a.item_id IS NULL

Нужно сделать свое дело ...

Но это немного странно, поскольку, вероятно, вернет больше, чем вам требуется.Этот запрос также вернет все строки из table_b, которые имеют результат в table_a, но где эти строки не имеют значения 'X', равного 3.

Если это не работает, попробуйте датьпример данных, которые вам нужно найти, и данных, которые вам не нужны, и мы можем попытаться помочь вам дальше!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...