我有一個client
,clientcontacts
和contactphones
表。從postgresql中的3個表中獲取行
每個客戶端可能有很多聯繫人,每個聯繫人可能有多個電話。
一些定義爲賣家的客戶,這意味着sellerid
是FK到clientid
我想在這裏我給clientid
編寫一個查詢並返回與手機銷售商的聯繫人(如果存在的話)
例如:
客戶
clientid name sellerid
1 jack
2 jeff
3 robin 1
clientcontacts
contactid clientid name
1 1 Robert
2 1 Magen
3 3 Sara
4 3 Rebeca
contactphones
contactphoneid contactid phone
1 1 00522
2 1 15541
3 1 555841
4 3 120
5 3 121
6 3 127
如果我給的clientid = 3 的出放應在接觸&手機客戶端ID = 1怎麼一回事,因爲1是3賣方如下:
Sara 120
Sara 121
Sara 127
Rebeca
我試過以下內容:
With seller (select sellerid from clients where clientid=INPUT)
select name,phone
from clientcontacts
using seller
left join contactphones on(clientcontacts.contactid=contactphones.contactid)
where clientcontacts.clientid=seller.sellerid
這給:
ERROR: syntax error at or near "using"
我怎麼能這樣做的查詢? 如果可能,沒有WITH
它是優先考慮的。
如果有人也可以解釋什麼excaly是我的查詢問題,可能是偉大的......我不明白爲什麼USING
不在這裏工作。
你試過簡單的JOIN嗎? – jarlh
是的......不能使它工作......我無法得到所需的結果,因爲你不能這樣做:clientid =輸入和clientid = resellerid –