SQL连接两个表中的数据,其中包含来自一个表的多个数据

时间:2014-08-18 01:40:11

标签: sql join

我有两个表,第一个是这样设置的:

name(PK), height, width, age

第二个表的设置如下:

name1, name2

如何以两种方式连接两个表格以便按以下方式输出数据:

name1, name2, height1, height2, width1, width2, age1, age2

第一个表中的名称可以连接到第二个表中的名称。

2 个答案:

答案 0 :(得分:1)

您可以使用不同的别名将table1(每行的名称,高度,宽度,年龄值)放入查询两次。我敢肯定,如果table1(t2和t12)中不存在table2(t2)中的name1或name2值,那么对性能的分析以及table1引用(t11和t12)的可能外部连接都是有序的。

SELECT
  t2.name1, 
  t2.name2, 
  t11.height height1, 
  t12.height height2, 
  t11.width width1,
  t12.width width2,
  t11.age age1,
  t12.age age2
FROM
  table2 t2,  -- contains rows with name1, name2
  table1 t11, -- contains rows with name, height, width, age
  table1 t12  -- contains same rows as t11 with name, height, width, age
WHERE t12.name = t2.name2 
  AND t11.name = t2.name1

答案 1 :(得分:0)

这是适合我的查询。

SELECT 
table2.name1, table2.name2,
t1.height as 'name1_height',
t2.height as 'name2_height',
FROM table2
INNER JOIN table1 t1 on (table1.name1 = t1.name)
INNER JOIN table1 t2 on (table1.name2 = t2.name)