兩個表在圖片中看到我有以下兩個表:加入2個條件
Table1
ID/Modif/Value
a/mb/Ki
a/x/Jim
Table 2
ID/Modif/Value
a/y/K
a/x/Kat
a/z/Ma
Desired Result:
ID/Modif/Value
a/mb/Ki
需要看到所有從表1有表2中,但不同的改性的值相同ID的記錄。
你能幫忙嗎?
兩個表在圖片中看到我有以下兩個表:加入2個條件
Table1
ID/Modif/Value
a/mb/Ki
a/x/Jim
Table 2
ID/Modif/Value
a/y/K
a/x/Kat
a/z/Ma
Desired Result:
ID/Modif/Value
a/mb/Ki
需要看到所有從表1有表2中,但不同的改性的值相同ID的記錄。
你能幫忙嗎?
對不起,我忙於自己的工作,聽起來像你所需要的是NOT IN命令,即:
SELECT DISTINCT c.ID, c.Modif, c.Value
FROM Table1 c
JOIN Table2 o on o.ID = c.ID
WHERE c.Modif NOT IN
(
Select o.Modif FROM Table2 o
)
這就是我將如何接近你的情況,不知道它是否是最好的方式。
請參閱FIDDLE這裏。
如果需要從第一隻錶行,請使用exists
:
select distinct c.* --, o.ID AS oID, o.Modif AS OModif, o.Val As OVal
from Table1 c
where not exists (select * from Table2 o where c.id = o.id and c.Modif = o.Modif)
執行加入這樣的:
SELECT DISTINCT c.* --, o.ID AS oID, o.Modif AS OModif, o.Val As OVal
FROM
Table1 c
JOIN Table2 o ON c.ID = o.ID
-- ensures there is at least 1 entry with same ID.
LEFT JOIN Table2 o2 ON c.ID = o2.ID AND c.Modif = o.Modif
WHERE o2.Modif IS NULL
-- left join + NULL check ensures there are NO entries with same ID and same Modif
如果我明白你的問題的權利本應得到期望的結果
您嘗試了不同的連接類型,如(左連接,右連接)等? – Mike
所以只是爲了澄清...你想要表1中的所有行至少有1個表中的條目具有相同的ID,但表2中沒有條目具有相同的ID和相同的Modif? –