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