簡體   English   中英

選擇另一個表中不存在的變量

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

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