MySQL查询table_b中的行而不是table_a中的行

时间:2010-07-05 14:38:13

标签: mysql compare

我正在执行此查询以获取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等于ID为3的行,而不是比较整个表。有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:2)

我不确定你是否在寻找table_a列x或table_b列x,但我们的想法是将它添加到join ON子句中:

LEFT JOIN table_a ON table_b.id = table_a.id and table_a.id = 3

答案 1 :(得分:0)

试试这个......

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.

如果它不起作用,请尝试举例说明您需要查找的数据以及您不想要的数据,我们可以尝试进一步提供帮助!