2017-12-27 11 views
0

my_table1と​​の2つのテーブルがあります。MySql Queryは特定の方法で結果を返します

my_table1は、1から10までの数字を含み、​​は、文字a、b、cおよびdを含む。最後まで

1 a 
1 b 
1 c 
1 d 
2 a 
2 b 
2 c 
2 d 

すべての道:

は、私は、次を返すクエリをしたいです。

SQLでこれを行う方法はありますか?

ありがとうございます。

SELECT * FROM my_table1, my_table2; 

参照:INNER JOINまたは通常カンマにMySQLの同等で、CROSS JOINある

答えて

1

これはクロスジョインです。 select * from table1, table2を選択するだけでシンプルな形式で書くことができますが、これは旧式の構文であり、この構文を1992年に導入されたより現代的な明示的な結合と混ぜると非常にになります。だから、私は明示的にcross joinと書くことにしました。

また、結果がソートされているように見えます。あなたが運が良ければ、これは自動的に起こりますが、これが常に起こることは確実ではありません。そうでない場合は、order by句を省略してください。クエリが遅くなるためです。

select 
    n.nr, 
    l.letter 
from 
    my_table1 n 
    cross join my_table2 l 
order by 
    n.nr, 
    l.letter 
+0

完璧、ありがとう。この場合、結果をソートする必要はないので、order by節を省略したと言います。 –

関連する問題