我在做這個查詢得到了在表-B行,而不是在表-A:MySQL查詢行均在表-B,而不是在表-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
這工作好,但我需要另一個條件適用於表-A。我需要比較只有列X等於3的ID的行,而不是比較整個表。有任何想法嗎 ?
謝謝。
我在做這個查詢得到了在表-B行,而不是在表-A:MySQL查詢行均在表-B,而不是在表-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
這工作好,但我需要另一個條件適用於表-A。我需要比較只有列X等於3的ID的行,而不是比較整個表。有任何想法嗎 ?
謝謝。
我不知道,如果你正在尋找表-A x列或表-B x列,但這個想法是將它添加到加入ON子句:
LEFT JOIN table_a ON table_b.id = table_a.id and table_a.id = 3
嘗試了這一點...
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。
如果它不起作用,請嘗試舉個例子查找需要查找的數據以及不需要的數據,我們可以嘗試進一步提供幫助!
它的工作原理,我完全錯過了ON子句的第二個參數。謝謝。 – 2010-07-05 14:44:42
不錯的一個邁克,好像你可以打字比我快:) 有一個+1! – 2010-07-05 14:46:19
@Dave,我通常是慢的! – 2010-07-05 14:50:53