※ 引述《smlboby (波比)》之銘言:
: ※ 引述《jjjkkkooo (接科噎歐)》之銘言:
: : 各位版友大家好
: : 在下在開發類似社群的網站平台,惟獨資料庫苦手
: : 急救章讀了些書,簡單查詢不是大問題,但一遇到
: : 稍微複雜的查詢就當機好久,以下的問題就麻煩版
: : 友們解答了,我的資料庫是MySQL
: : 我有一個名叫friend的Table如下:
: : ------------
: : user_id | friend_user_id
: : ------------
: : 1 | 2
: : 1 | 3
: : 1 | 4
: : 1 | 5
: : 2 | 1
: : 3 | 5
: : 由於加入好友機制是雙向的,如果上以圖為例
: : 1加入2為好友,2也接受1的交友,這樣二者才
: : 是真正的好友關係,如果我現在要查詢1的好友
: : SQL語法該如何下?
: : 我用了幾個很笨的方法,其中一個是
: : SELECT * FROM friend where user_id = 1 OR friend_user_id = 1
: : ↑把上面這段當子查詢,再查詢....真的很笨
: : 不知道有無好的解法?感謝回答 <(_ _)>
: 用自己 join 的方式作 ?!
: T-SQL(請自行翻譯) :
: select MTable.*
: from friend as MTable join friend as STable
: on MTable.friend_user_id = STable.user_id
: and MTable.user_id = STable.friend_user_id
: and MTable.user_id = 1
自問自答一下,我後來想到一個方法:
select * from friend where friend_user_id in
( select user_id from friend where friend_user_id = 1)
and user_id = 1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.118.210.121