2013-07-09 36 views
-1

讓我想我有兩個表。 第一個爲用戶。其中有ID,用戶名 另一個是檢查whois跟隨誰。 第二個表有2列「FROM」TO如何把邏輯放在2個不同的mysql表中?

table user 
id  username 
1  rko 
2  hhh 
3  john cena 
4  cm punk 

table follow 
from  to 
1  3 
1  4 

現在我想誰RKO不按照用戶名。 那麼,SQL會是什麼呢?

用mysql

回答

1

嘗試以下查詢:

SELECT * 
FROM USER 
WHERE 
ID 
NOT IN (
SELECT B.USERTO 
FROM USER AS A INNER JOIN follow AS B ON A.ID = B.userfrom 
WHERE USERNAME = 'RKO' 
UNION ALL 
SELECT ID 
FROM USER AS A 
WHERE USERNAME = 'RKO' 
) 

SQLFIDDLE

我已經修改了這個查詢,以便它不會因爲在正常情況下用戶返回結果當前用戶不能按照像RXO同一個用戶不能按照RXO。以便我從結果中移除該用戶。

1
SELECT T.username 
FROM user T 
WHERE T.id NOT IN (
    SELECT F.to 
    FROM follow F 
    WHERE F.from = (
     SELECT T2.id 
     FROM user T2 
     WHERE T2.username = "RKO" 
    ) 
) 
2

這是MSSQL:

select username 
from user 
where id not in (select to 
        from follow 
        where from = 1) 
1

也許類似的東西

SELECT usrename FROM user WHERE id NOT IN (SELECT to FROM follow WHERE from = (SELECT id FROM username WHERE name = 'rko'))