2015-05-13 94 views
0

嗨,我有以下的數據庫結構:從多個表中選擇值 - SQL

users包含:email, name

connections包含:followingemail, followedemail, isfollowedaccept

locations包含:location, email

我想要得到的name和我的朋友的的location時:我有我的電子郵件是followingemail的價值,我有我的朋友的電子郵件是followedemail的價值。

應該檢索數據只有當我有一個行中包含我的電子郵件爲followingemailfollowedemail我的朋友的電子郵件,也isfollowedaccept是真的connctions表。

我的問題是我該如何編寫該查詢?

我找不出來。謝謝。

+0

,對不起 – Tal

+0

你需要加入這些表 – madalinivascu

+0

@madalinivascu有沒有其他辦法可以呢? – Tal

回答

0

試試這個:

select u.name, l.location 
from connections C 
join users U on U.followedemail = C.email 
join location l on l.email = C.email 
where C.followingemail = (your email) 
and U.followedemail = (your friend's email) 
and U.isfollowedaccept = true 
0

@madalinivascu你寫你需要加入userslocations 2次,每次用於獲取數據,如東西

select 
u1.name as following_name, 
u2.name as followed_name, 
l1.location as following_location, 
l2.location as followed_location 
from connections c 
join users u1 on u1.email = c.followingemail 
join users u2 on u2.email = c.followedemail 
join locations l1 on l1.email = c.followingemail 
join locations l2 on l2.email = c.followedemail 
where 
c.followingemail = '{your email}' 
and c.followedemail = '{friends email}' 
and c. isfollowedaccept = 'true'