我希望能够在表1中选择没有提供或要求ID#1(jud)贷款的人。 我的2张桌子。
table 1
----------------------
id*|name|adress
1 |jud |pipi #5
2 |john|yoba #45
3 |jan |stackyflow 54
4 |Song|doesnt matter street 98
Table 2
-------------
*id|asked_loan|gave_loan
1 |1 |2
2 |1 |3
在这种情况下,我将只想获取Table1第4行:
4 |Song|doesnt matter street 98
我尝试过的事情:
SELECT DISTINCT `id`,`name`,`adress`
FROM `TABLE1`
LEFT JOIN `TABLE2` ON TABLE1.asked_loan = TABLE1.id
WHERE `asked_loan` !=1 AND `gave_loan` !=1
我的问题: 由于我没有加入,所以2个表挂在一起,因此不会出现在TABLE2中的用户不会出现。
摘要: 我希望能够选择未提供或获得(TABLE1 id)#1贷款的用户
答案 0 :(得分:0)
您应该选择不匹配的行:
SELECT DISTINCT TABLE1.id,`name`,`adress`
FROM `TABLE1`
LEFT JOIN `TABLE2` ON TABLE2.asked_loan=TABLE1.id
AND `asked_loan` !=1
AND `gave_loan` !=1
WHERE TABLE2.asked_loan is null
答案 1 :(得分:0)
一种选择是使用NOT EXISTS
至
SELECT *
FROM table1 t1
WHERE NOT EXISTS
(SELECT 0
FROM table2 t2
WHERE t1.ID IN (t2.asked_loan,t2.gave_loan) )
将table2
的这两列与ID
的{{1}}列匹配