Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从不同表中的SQL查询结果查找值_Sql_Sql Server - Fatal编程技术网

从不同表中的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匹配
我正在尝试从PersonTable中查找符合以下条件的Person 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,我不是法国人!