0

mySQL で 2 つの異なる結果セットを結合して並べて表示したいと考えています。たとえば、次のような結果セット #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

ここで私が望むのは、これら 2 つの結果を、関係なく 1 つの結果セットに並べて表示することです。

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

どうすればいいですか?

4

1 に答える 1

2

ID を持たない 2 つのテーブル間で結合を行う必要があります。まあ、あなたは本当にこれを行うことはできません。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

これが機能することが保証されていないことを強調する必要があります。テーブル間の適切な結合キーが本当に必要です。ただし、機能する場合があります。

于 2013-04-25T13:30:29.450 に答える