如果我们在没有任何条件的情况下包含两个表,SQL 查询的输出会是啥
Posted
技术标签:
【中文标题】如果我们在没有任何条件的情况下包含两个表,SQL 查询的输出会是啥【英文标题】:What would be output of SQL query if we include two table without any condition如果我们在没有任何条件的情况下包含两个表,SQL 查询的输出会是什么 【发布时间】:2014-10-12 06:26:42 【问题描述】:最近我在一次采访中被问到,如果我们触发如下的 sql 查询会输出什么:
select * from table1 & table2;
这会给出输出还是错误,当我用谷歌搜索/询问某人时,我得到了不同的答案。 请详细说明。
【问题讨论】:
那个特定的语句不是一个有效的语法,会给你一个错误。但是,您需要“详细说明”您要查找的内容。 这个语句甚至不是有效的语法。但假设您的意思是使用有效语法连接表 1 和表 2,您可以从这里开始了解连接:blog.codinghorror.com/a-visual-explanation-of-sql-joins 哦,当你在做的时候,为什么不简单地将它输入到 mysql 提示符中,看看会发生什么? @narendrak,查看连接,以非常清晰的方式说明,所有详细信息都在 Link 这里 【参考方案1】:如果您将语法修改为
select * from table1, table2;
你将得到一个所有条件都为真的连接,这与两个表的笛卡尔积相同。
table1 table2
------ ------
A 1
B 2
C
结果:
A 1
A 2
B 1
B 2
C 1
C 2
【讨论】:
【参考方案2】:如果你做对了,像这样:
select * from table1, table2;
您将得到笛卡尔积。这意味着,两个表的所有列和一个表的每一行都与另一个表的每一行连接。
【讨论】:
以上是关于如果我们在没有任何条件的情况下包含两个表,SQL 查询的输出会是啥的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有任何重复行的情况下连接 cognos 中的两个表?