SQL返回一个表中的所有行,其中列值等于连接到另一个表的匹配列值

时间:2013-07-17 16:26:32

标签: sql-server-2008

举个例子,假设我有包含列的表INFO:

ID - 名称 - 地址


我还有一个包含列的第二个表PURCHASES:

地区 - 名称 - 购买


多人可以在同一地区,但每个人只有一个身份证。  

我想编写一个查询,根据INFO表中的给定ID,返回与具有指定ID的人居住在同一地区的人的购买行中的所有行。


我在两个表的名称上做了内连接,但无法找出编写查询的最佳方法。

编辑:我的主要问题是INFO中没有Region列。获得该地区的唯一方法是加入PURCHASES表。然后我需要包含该Region的所有行的结果。

2 个答案:

答案 0 :(得分:0)

我不确定这是否正是您想要的,但您可能会稍微改变一下以更好地满足您的需求:

SELECT
    Purchasse
FROM
    PURCHASSE
INNER JOIN
    INFO ON INFO.Name = PURCHASSE.Name
WHERE 
    INFO.ID = yourID

对于任意Purchasse ID匹配的两列,这应该为Name提供。

答案 1 :(得分:0)

试试这个:

从PURCHASES LEFT OUTER JOIN INFO中选择* PURCHASES.NAME = INFO.NAME WHERE INFO.ID = givenID