Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL:合并两个没有公共id的表_Mysql_Sql_Join - Fatal编程技术网

MySQL:合并两个没有公共id的表

MySQL:合并两个没有公共id的表,mysql,sql,join,Mysql,Sql,Join,我有一个子ID表和一个父ID表。这些是分开的桌子。我想创建一个组合的子表和父表,将它们连接在一起。这两个表没有公共id Child Table | childId | | 1 | | 2 | Parent Table | parentId | | 3 | | 4 | Combined Child and Parent Table | childId | parentId | | 1 | 3 | | 2

我有一个子ID表和一个父ID表。这些是分开的桌子。我想创建一个组合的子表和父表,将它们连接在一起。这两个表没有公共id

Child Table
| childId |
| 1       |
| 2       |

Parent Table
| parentId |
| 3        |
| 4        |

Combined Child and Parent Table
| childId | parentId |
| 1       | 3        |
| 2       | 4        |
这两个表保证长度相同。(尽管如果你能让它以任意长度工作,我会很高兴。)对的顺序应该是MySQL显示它的顺序


如何获取生成的表?

您可以使用
内部联接来实现这一点,并使用
行号为每个表分配一个id
。请参阅下面我的查询:

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

如果你觉得这篇文章有帮助,至少接受它作为一个答案。如果有错误,请通知我,以便我可以检查。谢谢^_^您是什么意思?是否要订购val?我明白了,所以您所做的是创建一个包含行号和子id对的表,以及另一个包含行号和父id对的表。是否需要运行订单?ORDER BY可以改为在行号上运行吗?我从SQL Fiddle中得到一个错误:它说的是:“每个派生表都必须有自己的别名”。如果您对查询结果中的ORDER很挑剔,并且无法在行号上运行ORDER BY,则需要运行ORDER BY,因为这将导致错误