2010-07-05 17 views
0

我在做這個查詢得到了在表-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的行,而不是比較整個表。有任何想法嗎 ?

謝謝。

回答

2

我不知道,如果你正在尋找表-A x列或表-B x列,但這個想法是將它添加到加入ON子句:

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

它的工作原理,我完全錯過了ON子句的第二個參數。謝謝。 – 2010-07-05 14:44:42

+0

不錯的一個邁克,好像你可以打字比我快:) 有一個+1! – 2010-07-05 14:46:19

+0

@Dave,我通常是慢的! – 2010-07-05 14:50:53

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。

如果它不起作用,請嘗試舉個例子查找需要查找的數據以及不需要的數據,我們可以嘗試進一步提供幫助!

相關問題