[英]Return all records from left table except
我有以下表格結構
表標簽
________________
| id | name |
|____|___________|
| 4 | NAME_1 |
|____|___________|
| 5 | NAME_2 |
|____|___________|
| 6 | NAME_3 |
|____|___________|
| 7 | NAME_4 |
|____|___________|
| 8 | NAME_5 |
|____|___________|
| 9 | NAME_6 |
|____|___________|
table_label_changes
__________________________
| id | before | after |
|____|___________|_________|
| 4 | 4 | 5 |
|____|___________|_________|
| 5 | 4 | 6 |
|____|___________|_________|
我試圖從table_label 中獲取所有記錄,除了table_label_changes.before等於table_label.id和table_label.id等於4 的記錄
所以它應該是這樣的:
table_label 中的所有記錄減去列 ' after ' 中的 ID,其中列 ' before ' 等於 4
在這個例子中,我應該得到:
________________
| id | name |
|____|___________|
| 7 | NAME_4 |
|____|___________|
| 8 | NAME_5 |
|____|___________|
| 9 | NAME_6 |
|____|___________|
我試過了:
SELECT *
FROM table_label tl
JOIN table_label_changes tc
ON tl.id != tc.before
AND tl.id = 4
什么都不回
我也試過LEFT JOIN
,但它返回左表中的所有記錄。
我怎樣才能得到上面的回應?
不幸的是,您的問題不清楚或您期望的結果不正確,但我認為這可以幫助您:(如果您不想要 table_label.id == 4,您可以將“and id <> 4”添加到 where 條件table_label)
SELECT * FROM table_label tl WHERE id not in (SELECT after FORM table_label_changes WHERE before == 4)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.