(第二等を有する第一、第二との)行番号に参加MYSQL

txemsukr:

のは、私は2つのシンプルなテーブルがあるとしましょう

Table t1    Table t2
+------+    +------+
| i    |    | j    |
+------+    +------+
|   42 |    |    a |
|    1 |    |    b |
|    5 |    |    c |
+------+    +------+

どのように私は2つのテーブルの出力を持つことができ、行番号を除き、いかなる条件なしで参加しましたか?

私は、可能な場合は、別のインデックスの作成を避けるためにしたいと思います。

私は、MySQL 5.7を使用しています


この例では、出力は次のようになります。

Table output
+------+------+
| i    | j    |
+------+------+
|   42 |    a |
|    1 |    b |
|    5 |    c |
+------+------+
仕事カーティス:

あなたが尋ねることができますあなたのコメントが真実であると仮定して、行うこと。

「テーブルのiとjはサブクエリであっても(順を含みます)?」

スキーマ(MySQLのV5.7)

CREATE TABLE table_1 ( i INT );
CREATE TABLE table_2 ( j VARCHAR(4) );

INSERT INTO table_1
VALUES (3),(5),(1);

INSERT INTO table_2
VALUES ('c'), ('b'),('a');

質問

SELECT t1.i, t2.j
FROM (SELECT t1.i
           , @rownum1 := @rownum1 + 1 AS rownum
      FROM (SELECT table_1.i
            FROM table_1
            ORDER BY ?) t1
               CROSS JOIN (SELECT @rownum1 := 0) v) t1
         JOIN (SELECT t2.j
                    , @rownum2 := @rownum2 + 1 AS rownum
               FROM (SELECT table_2.j
                     FROM table_2
                     ORDER BY ?) t2
                        CROSS JOIN (SELECT @rownum2 := 0) v) t2 ON t2.rownum = t1.rownum;

しかし、このアプローチは、効率的、およびb)疑わしい設計を示すものではない)です。あなたは、おそらく実際には何も存在しない場合は、何かを作成し、あなたの2つのテーブルを関連か何かを探したいです。2つのテーブルを関連するものが本当に存在しない場合は、とのトラブルがあるでしょうORDER BYとにかく句を。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=25925&siteId=1