![](/img/trans.png)
[英]Select from table A and B, where records from table A and table B don't exist in table C?
[英]Select variables that don't exist in another table
我正在嘗試做一個php sql查詢,在此我得到其user_id不在另一個數據庫表中的對象。 現在是我的查詢:
SELECT * FROM table1 WHERE user_id='$show_id' ORDER BY id DESC LIMIT 0, 10
在它里面,我檢查它是否在另一個表中。 僅當表中不存在它時,它才會回顯。 問題是,它不會顯示完整的10個限制。
因此,我的想法是創建一個sql查詢,該查詢計算一下它是否存在於另一個數據庫表中。
在過去,我只完成了簡單的sql查詢(如上所示),沒有執行多表查詢,而是將查詢放入查詢中。 請幫忙!
您可以使用NOT EXISTS
運算符:
SELECT *
FROM table1 AS t
WHERE user_id='$show_id'
AND NOT EXISTS
( SELECT *
FROM OtherTable AS ot
WHERE ot.user_id = t.user_id
)
ORDER BY id DESC
LIMIT 0, 10
您可以在一個查詢中執行此操作:
SELECT *
FROM first_table
WHERE user_id NOT IN (
SELECT user_id
FROM second_table
)
這將讓所有的記錄first_table
其中user_id
不會在發生user_id
列second_table
SELECT *
FROM table1 t1
LEFT OUTER JOIN table2 t2 on t2.user_id = t1.user_id
WHERE t1.user_id = '$show_id'
AND t2.user_id IS NULL
ORDER BY id DESC
我不確定,但是聽起來您正在尋找NOT EXISTS
子查詢:
SELECT * FROM table1
WHERE NOT EXISTS (select id from othertable where id = user_id) AND user_id='$show_id'
ORDER BY id DESC LIMIT 0, 10
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.