如何在MySQL中加入两个结果集?

时间:2013-04-25 13:23:37

标签: mysql

我想在mySQL中加入两个不同的结果集来显示。例如,假设我有一个结果集#1如下 -

NAME    PHONE
ABC     123
DEF     456
GHI     789

结果集#2 -

MAIL ID        WEBSITE
JKL@JKL.COM    WWW.JKL.COM
MNO@MNO.COM    WWW.MNO.COM
PQR@PQR.COM    WWW.PQR.COM

现在我想要的是这两个结果在一个结果集中并排显示,没有任何关系。

NAME    PHONE    MAIL ID        WEBSITE
ABC     123      JKL@JKL.COM    WWW.JKL.COM
DEF     456      MNO@MNO.COM    WWW.MNO.COM
GHI     789      PQR@PQR.COM    WWW.PQR.COM

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要在两个没有id的表之间进行连接。好吧,你真的不能这样做。 SQL中的表没有排序,因此您需要一个键来链接它们。

你可以做点什么。而且,如果你很幸运,它会奏效。以下内容为每个表添加一个行号,然后加入:

select t1.name, t1.phone, t2.mail, t2.website
from (select t1.*, @r1 as r1, @r1 := @r1 + 1
      from t1 cross join (select @r1 := 0)
     ) r1 join
     (select t2.*, @r2 as r2, @r1 := @r2 + 1
      from t2 cross join (select @r2 := 0)
     ) r2
     on t1.r1 = t2.r2

我必须强调, 保证无法正常工作。您确实需要在表之间使用正确的连接键。但是,它可能会奏效。