簡體   English   中英

SQL選擇記錄

[英]SQL select records

我有兩張桌子

--table a--
first  second   
------ -------  
user-1 user-2
user-2 user-1
user-2 user-3

--table b--
ignoreby  ignored
--------  -------
user-1    user-2
user-1    user-4
user-3    user-4

我想從表a中選擇不忽略它們的記錄(包括單向記錄)

結果將是:user-2 user-3

記錄中的user-2 user-1不應包含在結果中,因為user-1會忽略user-2且這是單向的。

謝謝

您是說“雙向”而不是“單向”嗎? 如果是這樣的話:

select a.*
from tablea a
where not exists (select 1
                  from tableb b
                  where (b.ignoreby = a.first and b.ignored = a.second) or
                        (b.ignoreby = a.second and b.ignored = a.first)
                 );

如果確實表示“單向”,那么您將只使用第一個條件。

也許您可以嘗試其他更簡單的方法。 就像在第一個表(表a)中添加一個帶有布爾值的is_ignored列一樣。 然后,您可以通過一次選擇直接查看該用戶是否忽略了另一個用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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