2015-04-27 187 views
-1

我有多個表,每個表都由PersonID連接。從不同表中查詢SQL查詢結果的值

  • PhoneNumber包含用於電話號碼類型(工作,小區,家庭),電話號碼,是否啓用SMS消息的值和人員ID的列。
  • Person包含名稱和電子郵件地址,其關鍵字是人員ID
  • AttributeValue包含多個'custom'屬性的值(每個屬性都有唯一的'AttributeId')。該表中的關鍵列是AttributeId,Value和EntityId。 EntityId匹配的人身份證號碼

我試圖從PersonTable中找到符合以下條件的Person ID的對應名稱和電子郵件地址。

FROM [rock].[dbo].[AttributeValue] 
WHERE AttributeId='1770'; 

FROM [rock].[dbo].[PhoneNumber] 
WHERE IsMessagingEnabled=0 AND NumberTypeValueId=12 
+0

是的,這是可能的。事實上,[有很多方法可以做到這一點。](http://stackoverflow.com/a/29362848/3094533)然而,在你的情況下,我認爲你正在尋找的是一個JOIN,你從哪裏獲得數據多個表。 –

+0

您正在使用哪些DBMS? Postgres的?甲骨文? –

+0

請分享您的表格結構,一些示例數據以及您試圖獲取該數據的結果。 – Mureinik

回答

1

首先在SQL中,當您通過一個ID關聯多個表時,您可以使用連接。

比如我有一個表的客戶(ID,姓名,名字),表地址(ID,客戶ID,姓名,郵編,市)和一張桌子電話(ID,客戶ID,PhoneHome,PhoneMobile)

您可以使用此類型的查詢找到相應的客戶地址和電話:

SELECT [Address.Name], [Phone.PhoneHome], [Phone.PhoneMobile] FROM Address, Phone 
INNER JOIN Address ON [Customer.ID] = [Address.CustomerID] 
INNER JOIN Phone ON [Customer.ID] = [Phone.CustomerID] 
WHERE [Customer.ID] = "Value" 

希望它會幫助你,至少你可以找到對關節的很好的例子:

http://openclassrooms.com/courses/introduction-aux-jointures-sql(我相信你」法國人,所以這是一個很好的法國網站了解它。)

祝您有美好的一天

+0

嘿VERYNET, 我不是法國人! – OldAccount

0

這樣的事情?

SELECT * FROM Person WHERE PersonID IN (SELECT PersonID FROM ....)