从不同表{J}中的SQL查询结果中查找值

时间:2015-04-27 14:28:27

标签: sql sql-server

我有多个表,每个表都由PersonID连接。

  • PhoneNumber包含电话号码类型(工作,手机,家庭),电话号码,是否启用短信息以及人员ID的值。
  • 人员包含姓名和电子邮件地址,其密钥为人员ID
  • AttributeValue包含多个' custom'的值。属性(每个属性都有一个唯一的' AttributeId')。此表中的键列是AttributeId,Value和EntityId。 EntityId匹配Person Id

我试图从PersonTable中找到符合以下条件的人员ID的相应姓名和电子邮件地址。

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

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

2 个答案:

答案 0 :(得分:1)

首先在SQL中,如果您有多个与一个ID相关的表,则可以使用连接。

例如我有一个表Customer(ID,Name,Firstname),表Address(ID,CustomerID,Name,PostalCode,City)和表Phone(ID,CustomerID,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(我相信你是法国人,所以这是一个很好的法国网站,可以了解它。)

度过美好的一天

答案 1 :(得分:0)

这样的东西?

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