[英]Select two items from a table as two different things
我有兩個表:tblOrganisations和tblContacts。 我有一個查詢,它帶回組織。 我還想帶回鏈接到組織的兩個不同類型的聯系人(主要= 1,替代= 2)。 但是,我一直堅持如何從一個表中將多個聯系人的多個字段帶回不同的地方。
到目前為止,我可以獲取他們的ReferenceID作為PrimaryID和SecondaryID。
SELECT tblOrganisations.*
, ( SELECT tblContacts.ReferenceID
FROM tblContacts
WHERE tblOrganisations.ReferenceID = tblContacts.tblOrganisations_ReferenceID
AND tblContacts.tblContactTypes_ReferenceID = 1
) AS PrimaryID
, ( SELECT tblContacts.ReferenceID
FROM tblContacts
WHERE tblOrganisations.ReferenceID = tblContacts.tblOrganisations_ReferenceID
AND tblContacts.tblContactTypes_ReferenceID = 2
) AS SecondaryID
FROM tblOrganisations
上面的查詢為我提供了組織,以及他們從tblContacts獲得的聯系人的ReferenceID,分別是我想要的兩種不同類型的聯系人的PrimaryID和SecondaryID。 但我想為每個聯系人提供更多字段-名字,姓氏,電子郵件地址等
我嘗試過類似的東西;
SELECT tblOrganisations.*
,
( SELECT tblContacts.ReferenceID AS PrimaryID ,
FirstName AS PrimaryFirstName
FROM tblContacts
WHERE tblOrganisations.ReferenceID = tblContacts.tblOrganisations_ReferenceID
AND tblContacts.tblContactTypes_ReferenceID = 1
)
,
( SELECT tblContacts.ReferenceID AS SecondaryID ,
FirstName AS SecondaryFirstName
FROM tblContacts
WHERE tblOrganisations.ReferenceID = tblContacts.tblOrganisations_ReferenceID
AND tblContacts.tblContactTypes_ReferenceID = 2
)
FROM tblOrganisations
但這實際上並沒有帶回PrimaryID,SecondaryID,PrimaryFirstName等中的任何內容
感謝您的幫助或指點:)
具有期望值的表必須連接兩次。在這種情況下,它將是tblcontacts。
SELECT
o.*,
c1.referenceid AS PrimaryID,c1.firstname as primaryfirstname,
c2.referenceid AS SecondaryID,c2.firstname as secondaryfirstname
FROM tblOrganisations o
JOIN tblContacts c1 on o.ReferenceID = c1.tblOrganisations_ReferenceID
JOIN tblContacts c2 on o.ReferenceID = c2.tblOrganisations_ReferenceID
WHERE c1.tblContactTypes_ReferenceID = 1 and c2.tblContactTypes_ReferenceID = 2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.