簡體   English   中英

SQL-另一個表中不存在SELECT行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM