![](/img/trans.png)
[英]PHP MYSQL JOIN QUERY 2 Databases, Where table1.id = table2.id, How to display table2.content as table1.id
[英]MySQL Select statement Where table1.id != table2.id
我有一個包含帖子的數據表,然后我有一個單獨的數據表,刪除了帖子。 刪除帖子后會發生的情況是,它的ID被添加到已刪除的表中而不是刪除帖子條目。
什么是從posts表中選擇所有帖子而不選擇在已刪除表中具有其ID的那些帖子的干凈有效方式
在posts表中添加一個額外的列並刪除存儲和布爾值會不會更容易? 或者如果要存儲刪除它的人,則使用整數字段(表示用戶ID),0 =未刪除。
如果你不能改變你的表,你可以做一個Left Join
(在可能的情況下將加入你的deleted_table
),然后檢查id
為Null
(意味着沒有找到任何行)。
Select everything_you_need
From post_table p
Left Join delete_table d On ( d.id = p.id )
Where d.id Is Null;
確保在兩個id
-columns上都有索引以獲得最佳性能。
如果你有充分的理由不像bigstylee建議的那樣使用布爾標志,你可以使用EXISTS子查詢:
SELECT * FROM table1
WHERE NOT EXISTS
(SELECT * FROM table2 WHERE table1.id=table2.id);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.