这个问题已经在这里有了答案 :
INNER JOIN ON vs WHERE子句 (12个答案)
7年前关闭。
我有两个选择连接SQL语句:
select a.id from table_a as a, table_b as b where a.id=b.id;
select a.id from table_a as a inner join table_b as b on a.id=b.id;
显然,它们的结果相同。但是它们之间没有任何区别,例如性能,可移植性。
一个区别是,第一个选项通过在where子句中表达联接条件来隐藏意图。
第二个选项,写出连接条件的条件对于阅读查询的用户来说更加清楚。它显示了查询的确切意图。
至于性能或任何其他差异,应该没有任何差异。在大多数RDBMS中,这两个查询应返回完全相同的结果,并执行相同的结果。
问题内容: 我知道SQL Server中的联接。 例如。有两个表Table1,Table2。 它们的表结构如下。 表1的数据如下: 表2数据如下: 如果我执行下面提到的两个SQL语句,则两个输出将是相同的 请在上述SQL语句中说明左右联接之间的区别。 问题答案: Select * from Table1 left join Table2 … 和 确实是完全可以互换的。但是,请尝试(或同一对)进行区
问题内容: 我可能现在应该知道这一点,但是以下两个语句之间的区别是什么? 嵌套联接: 比较传统的联接: 问题答案: 好吧,这是操作的顺序。 可以改写为: 因此,基本上,首先根据连接条件:t3将t2与t3左连接,然后在table2_ID = table1_ID上与t2对IN1进行t1内连接。 在第二个示例中,首先将INNER JOIN t1与t2组合在一起,然后在条件table2_ID = tabl
我想从两个select查询的内部联接中选择两列。我编写了一个连接三个表的查询,从结果中我只希望得到两列。但是我的查询显示错误。我使用的是oracle sql Developer。 我只想要名字和姓氏,但我得到了这样的错误:
问题内容: 我很难做到以下几点: 我想加入ValTbl,但仅适用于不同的值。 问题答案: 试试这个: 或这样做(它的作用相同,但语法不同):
我得到了下面的SQL,我想将其转换为有效的HQL。这方面的问题是,不允许根据文档加入子查询。尽管这些是旧文档(v3.3),但在hibernate 5.3中,这一节似乎仍然适用。 我想出了这个HQL: 尝试执行此HQL查询会导致此异常 这将提示 在. 有没有办法加入HQL中的子查询?如果不是,那么获得与具有HQL的SQL相同的结果的最佳方法是什么? 我不擅长转换
我想从short_name(国家名称)、name(州表)或region_name的任何可用数据中选择post_id。对region_name而不是short_name(国家名称),name(州表)执行以下查询,结果为真。 请告诉我,我哪里弄错了!