2014-02-21 32 views
0

我想查詢一下顯示某些用戶的數據蝙蝠,首先是其他查詢,是難以解釋的東西。我不想獲取我關注的用戶的數據,我希望看到我不遵循的數據。所以,我有兩個表「follow_follower」,「用戶」,現在做一箇中間查詢,但不匹配:在查詢中做一段時間,子查詢

follow_follower 

cod  seguidor seguido 
1  1   2 
2  1   3 
3  1   8 
4  1   6 
5  8   2 
6  2   8 
7  2   4 
8  3   2 
9  5   1 

User 

cod nombre  apellido telefono 
1 carlos  cardenas 12587 
2 Umberto  Contreras 125488 
3 carlos  Torres  44587 
4 Victor  Sambrano 69754 
5 Carlos  Barragan 3698741 
6 Jorge  Cantor  
7 Umberto  Zanetty  578825 
8 Miguel  Cantor  5488787 

OK,如果你看到的是在follow_follower四個字段用戶是1(卡洛斯·卡德納斯)怎麼辦查詢第一個拿到我跟着後選擇的人的所有數據diferent所有用戶「DISTICN」看到我的查詢:

select distinct(nombre), apellido, telefono 
    FROM usuario 
    where cod<> ANY(select seguido from follow_follower where seguidor=1) 
    order by cod 

但只有DISTINC一個ANY所有查詢的行。


確定我想要的人的名單有點那個我不遵守,但我看到你的查詢,並顯示錯誤,我知道一點MySQL查詢推進:(和另一個問題是,我的數據庫被寫入西班牙...但去嘗試一下表DB等是!!!:

這是一個真正的查詢:

SELECT distinct(usua.cod), usua.nick, desi.usuario, main.dir, main.size, main.x, main.y, main.R, main.G, main.B, main.A 
FROM usuario AS usua, design AS desi, mainPhoto AS main 
WHERE desi.usuario = usua.cod 
AND desi.cod = main.design 
AND usua.cod <> ANY(select seguido from seguidor_seguido where seguidor=1)/**!!!!!/ 
AND main.dir <> '' 
AND main.type =1 
ORDER BY usua.nick DESC 
LIMIT 44 , 6 

所以唯一的表,真正的進口是usuario(用戶內容數據)和seguidor_seguido(內容全部記錄遵循)

---描述表seguidor_seguido:

seguidor_seguido 
cod // is the id of the record 
seguidor // is the user that follow to other users 
seguido // is the user that is followed by other users 

雖然要求是不同的,從原來的也是同樣的問題! 感謝:d

回答

0

我終於可以結束查詢和匹配好了! :d見:

SELECT U.cod, U.nombre, U.apellido, U.telefono FROM User U LEFT JOIN (SELECT f.seguido 
FROM follow_follower f 
WHERE f.seguidor = 1)t1 ON u.cod = t1.seguido 
WHERE t1.seguido IS NULL AND U.cod <> 1 GROUP BY U.cod 

這是我需要的查詢,但我感謝:d

0

聽起來像是你想不跟着你的所有用戶的列表。我不確定您是否希望這是傳遞性的(即包括關注跟隨您的用戶的用戶等)。

如果你只是想做到一個級別,它會這樣。你想獲得follow_follower中所有條目的列表,其中seguido(我假設這意味着「被跟蹤的人」)不是你。用戶可以關注其他人,但他們無法關注你。您可以在User表中加入兩次以獲取用戶名。

SELECT DISTINCT 
     usuario_seguidor.nombre, 
     usuario_seguidor.applido, 
     usuario_seguidor.telephono 
    FROM follow_follower 
    JOIN usuario AS usuario_seguidor 
    ON usuario_seguidor.cod = follow_follower.seguidor 
WHERE follow_follower.seguido <> 1