[英]SQL - SELECT rows NOT EXISTS in another table
我試圖基於表A
選擇表B
不存在的行。
與表B
不同,表A
在titleid的末尾具有“ _00”,並且該列稱為title
而不是titleid
。
表A :
id | titleid
---+----------
1 | TEST1_00
2 | TEST2_00
3 | TEST3_00
4 | TEST4_00
表B :
id | title
---+-------
1 | TEST1
2 | TEST2
我目前有:
SELECT `t1.titleid`
FROM `tableb t1`
LEFT JOIN `tablea t2` ON `t2.title + '_00' = t1.titleid`
WHERE `t2.title` IS NULL
如何選擇A
中存在但B
不存在的值?
所需的輸出
id | title
---+----------
3 | TEST3_00
4 | TEST4_00
SELECT t1.titleid
FROM tablea t1
LEFT JOIN tableb t2 ON t2.title + '_00' = t1.titleid
WHERE t2.title IS NULL
您要從Table A
提取數據,對Table B
進行left join
,並where TableB.Title is null
提取數據。
您的查詢試圖where TableA.Title is NULL
提取數據。
如果tablea
則需要LEFT JOIN
tableb
代替
SELECT `t1.titleid`
FROM `tablea t1`
LEFT JOIN `tableb t2` ON `t1.titleid = t2.title+ '_00'`
WHERE `t2.title` IS NULL
這將顯示tablea
哪些記錄在tableb
不匹配並且為null
可以這樣做
SELECT `t1.titleid`
FROM `tablea t1`
WHERE
NOT EXISTS (SELECT t2.title FROM `tableb t2` WHERE `t1.titleid = t2.title+ '_00'`)
select * from A where SUBSTRING(A.title,0, 6) in (select B.title from B )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.