【发布时间】:2015-06-09 02:11:45
【问题描述】:
我正在尝试连接多个表并根据它们共享的公共列对数据进行排序。这是一个例子:
表 A
pk itemId text
1 10 ordered
1 5 make
1 8 it
1 4 not
表 B
pk itemId text variable
1 6 sense 94
1 1 this 99
1 2 text 98
表 C
pk itemId text anotherVariable
1 3 does 97
1 7 unless 93
1 9 is 91
我需要像这样的决赛桌:
结果表
pk itemId text variable
1 1 this 99
1 2 text 98
1 3 does 97
1 4 not NULL
1 5 make NULL
1 6 sense 94
1 7 unless 93
1 8 it NULL
1 9 is 91
1 10 ordered NULL
我正在使用以下查询,但它不起作用...
SELECT *
FROM tableA as A
INNER JOIN tableB as B ON A.pk = B.pk
INNER JOIN tableC as C ON A.pk = C.pk
ORDER BY A.itemId, B.itemId, C.itemId
编辑: 添加了另一个变量以进一步解释我的问题,跨表我并不总是在所有表上都有相同的列名。在其他表上,我可能希望在结果表中包含不同的列。
【问题讨论】:
-
你为什么不简单地做你说你想做的事情,并按共享列排序你的结果?
-
@DanBracuk 加入后没有“共享 [项目] 列”..
标签: mysql sql sql-server inner-join