从不同表中的SQL查询结果查找值
我有多个表,每个表都通过从不同表中的SQL查询结果查找值,sql,sql-server,Sql,Sql Server,我有多个表,每个表都通过PersonID连接 PhoneNumber包含电话号码类型(工作、手机、家庭)、电话号码、是否启用SMS消息的值以及个人ID的列 Person包含姓名和电子邮件地址,其密钥为Person ID AttributeValue包含许多“自定义”属性的值(每个属性都有一个唯一的“AttributeId”)。此表中的键列是AttributeId、Value和EntityId。EntityId与个人Id匹配 我正在尝试从PersonTable中查找符合以下条件的Person
PersonID
连接
- PhoneNumber包含电话号码类型(工作、手机、家庭)、电话号码、是否启用SMS消息的值以及个人ID的列
- Person包含姓名和电子邮件地址,其密钥为Person ID
- AttributeValue包含许多“自定义”属性的值(每个属性都有一个唯一的“AttributeId”)。此表中的键列是AttributeId、Value和EntityId。EntityId与个人Id匹配
FROM [rock].[dbo].[AttributeValue]
WHERE AttributeId='1770';
FROM [rock].[dbo].[PhoneNumber]
WHERE IsMessagingEnabled=0 AND NumberTypeValueId=12
首先,在SQL中,当多个表由一个ID关联时,可以使用联接 例如,我得到了一个表客户(ID、Name、Firstname)、一个表地址(ID、CustomerID、Name、PostalCode、City)和一个表电话(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"
希望它能帮助您,至少您可以在以下网站上找到关节的好例子:
(我相信你是法国人,所以这是一个学习法语的好网站。)
今天过得愉快吗
SELECT * FROM Person WHERE PersonID IN (SELECT PersonID FROM ....)
是的,这是可能的。但事实上,在您的例子中,我认为您需要的是一个连接,从多个表中获取数据。您使用的是哪种DBMS?博士后?Oracle?请共享您的表结构、一些示例数据,以及您试图获取的数据结果。对于回复速度慢的家伙,我深表歉意。我一直忙于很多其他的项目。我正在使用MS SQL。我已经改变了我原来的问题,因为我实际上需要对照三张桌子看。嘿,VERYNET,我不是法国人!