2015-02-09 131 views
0

我有一个儿童ID和父母ID表的表。这些是单独的表格。我想创建一个将它们连接在一起的组合子表和父表。这两张表没有共同的ID。MySQL:将两个表合并在一起,没有共同的ID

Child Table 
| childId | 
| 1  | 
| 2  | 

Parent Table 
| parentId | 
| 3  | 
| 4  | 

Combined Child and Parent Table 
| childId | parentId | 
| 1  | 3  | 
| 2  | 4  | 

这2个表保证是相同的长度。 (虽然如果你可以使它的任意长度工作,我会很高兴。)对的顺序应该只是MySQL显示它的顺序。

我怎样才能得到结果表?

回答

2

您可以使用INNER JOIN来完成此操作,并使用ROW_NUMBER为每个表分配一个ID。看到我的查询如下:

SELECT childId,parentId FROM 
(SELECT 
    @row_number1:[email protected]_number1+1 AS RowNumber1, 
    childId 
FROM Child, (SELECT @row_number1:=0)AS x ORDER BY childId) AS A 
INNER JOIN 
(SELECT 
    @row_number2:[email protected]_number2+1 AS RowNumber2, 
    parentId 
FROM Parent, (SELECT @row_number2:=0)AS y ORDER BY parentId) AS B 
ON A.RowNumber1=B.RowNumber2 
+0

如果你觉得这篇文章有帮助,至少接受它作为答案。如果有错请告诉我,以便我可以检查。谢谢。^_^ – Rigel1121 2015-02-09 07:50:28

+0

你是什么意思'ORDER BY val'?有没有要订购的价格? – CMCDragonkai 2015-02-09 07:58:01

+0

它应该是childId,我已经编辑它。 – Rigel1121 2015-02-09 07:59:15