如何在SQL中连接两个表值

时间:2013-05-20 05:18:03

标签: sql sql-server-2008

我有两张桌子,分别是国家和地区。地区。这些表中的公共列是StateID。

我想在该州的地区名称下显示州名

结果格式应如下所示:

塔米尔纳杜

哥印拜陀

卡纳塔克邦

班加罗尔

迈索尔

请告诉我如何使用sql查询加入表以获得上述结果。

3 个答案:

答案 0 :(得分:2)

请尝试:

select StateID, StateName, 0 Sort from States
union all
select StateID, DistrictName, 1 Sort From Districts
order by StateID, Sort

答案 1 :(得分:1)

这应该有效:

SELECT sc.name 
FROM
       states AS s2 
LEFT JOIN
       (SELECT s.statename AS name, 
               s.stateid 
          FROM   states s 
       UNION ALL 
       SELECT c.cityname AS name, 
              c.stateid 
          FROM   city c) AS sc 
ON sc.stateid = s2.stateid 

<强>输出:

  

<强>塔米尔纳杜
  奈
  哥印拜陀
  的卡纳塔克邦
  班加罗尔
  迈索尔

答案 2 :(得分:0)

SELECT StateName, group_concat(DistrictName)
  FROM Districts d JOIN States s
    ON d.StateID = s.StateID
group by StateName
ORDER BY StateName, DistrictName