MySql以特定方式查询结果

我有两个表,my_table1和​​。MySql以特定方式查询结果

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 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

回答:

这是一个CROSS JOIN,在MySQL相当于INNER JOIN或常规逗号:

SELECT * FROM my_table1, my_table2; 

比照https://dev.mysql.com/doc/refman/5.7/en/join.html

以上是 MySql以特定方式查询结果 的全部内容, 来源链接: utcz.com/qa/264859.html

回到顶部