什么是SQL JOIN
?有哪些不同的类型?
SQL JOIN
是从两个或多个数据库表中检索数据的方法。
SQL JOIN
s有什么不同?总共有5JOIN
秒。他们是 :
1. JOIN or INNER JOIN
2. OUTER JOIN
2.1 LEFT OUTER JOIN or LEFT JOIN
2.2 RIGHT OUTER JOIN or RIGHT JOIN
2.3 FULL OUTER JOIN or FULL JOIN
3. NATURAL JOIN
4. CROSS JOIN
5. SELF JOIN
在这种情况下JOIN
,我们获得了两个表中都符合条件的所有记录,并且两个表中不匹配的记录均未报告。
换句话说,INNER JOIN
基于以下事实:仅应列出两个表中的匹配条目。
需要注意的是一个JOIN
没有任何其他JOIN
的关键字(如INNER
,OUTER
,LEFT
,等)是INNER JOIN
。换句话说,JOIN
是的语法糖INNER JOIN
。
OUTER JOIN
检索
一个表中的匹配行与另一表中的所有行匹配,或者所有表中的所有行匹配(是否匹配)。
共有三种外连接:
2.1左外联接或左联接
此联接返回左表中的所有行以及右表中的匹配行。如果右表中没有匹配的列,则返回NULL
值。
2.2正确的外部联接或正确的联接
这JOIN
将返回右表中的所有行以及左表中的匹配行。如果左表中没有匹配的列,则返回NULL
值。
2.3完全外部联接或完全联接
这JOIN
结合LEFT OUTER JOIN
和RIGHT OUTER JOIN
。当满足条件时,它从任一表返回行,而NULL
在没有匹配项时返回值。
换句话说,OUTER JOIN
基于以下事实:仅应列出表之一(右或左)或表两者(全)中的匹配条目。
Note that `OUTER JOIN` is a loosened form of `INNER JOIN`.
它基于两个条件:
JOIN
对所有与平等相同名称的列所做的。这似乎本质上是理论上的,因此(可能)大多数DBMS甚至都不愿意为此提供支持。
它是所涉及的两个表的笛卡尔乘积。CROSS JOIN
在大多数情况下,a的结果都没有意义。而且,我们根本不需要(或者至少需要)。
这不是一个不同形式的JOIN
,而它是一个JOIN
(INNER
,OUTER
等)的表格的给自己。
根据JOIN
子句使用的运算符,可以有两种类型JOIN
的。他们是
对于任何JOIN
类型(INNER
,OUTER
等等),如果仅使用相等运算符(=),那么我们说theJOIN
是一个EQUI JOIN
。
与此相同,EQUI JOIN
但是它允许所有其他运算符,例如>,<,> =等。
许多人认为
EQUI JOIN
和Theta都JOIN
类似于INNER
,OUTER
etc
JOIN
。但是我坚信这是一个错误,并且使想法含糊不清。因为INNER JOIN
,OUTER JOIN
等等都与表及其数据,而连接EQUI JOIN
和THETA JOIN
仅与我们前使用运营商连接。同样,有许多人认为这
NATURAL JOIN
是某种“奇特的”EQUI JOIN
。实际上,这是真的,因为我提到的第一个条件NATURAL JOIN
。但是,我们不必将其仅局限于NATURAL JOIN
s。INNER JOIN
s,OUTER JOIN
s等也可以EQUI JOIN
。
(Spring的@CachePut注释是否适用于void返回类型?) 我遇到了同样的问题 因为这个问题已经存在很长时间了,我不知道是否有解决办法 创建缓存: 使用@CachePut更新此缓存 输出: 我搜索了几天信息,但没有找到答案 除了使用@CacheEvict(cacheNames=userCache,allEntry=true) 有没有办法用@Cacheable和@CachePut解决? 非
问题内容: 以下代码可以正常工作。在两个不同的结构上操作并打印该结构的字段的两种方法: 在控制台中显示所需的输出: 现在 ,如果我以以下方式更改方法签名,则会出现编译错误。我只是将方法的接收者移动到方法的参数: 我什至无法编译程序: 问 :为什么 当 方法具有相同的名称和Arity 时 ,我可以在接收器中互换结构类型,而不能在参数中互换结构类型? 问题答案: 因为Go不支持在其参数类型上重载用户定
什么是SQL和什么是不同的类型?
我需要编写一个java方法来从一个对象中获取特定的信息。但是,该对象可以是A类型的,也可以是B类型的。下面是我的代码的一部分: 当我这样写它时,它会引发一个错误,说“重复方法”。我怎么才能让这个起作用?
想象一下下面的scanario:我有一个程序,它要求输入一个整数,然后是一个String输入。 根据aobe代码,我没有机会输入姓名。因此,通常我会声明2个扫描仪对象,如下所示: 我的问题是:有必要声明多个扫描仪对象来接受不同类型的输入吗??我这样做是正确的吗? 我已经考虑这个问题很多年了。(SO中的几个问题提到了多扫描仪,但他们的问题只使用了一个扫描仪对象,所以我今天问这个问题。)
我应该像“老”方式那样做吗,还是应该用做些什么?我在想是否有人能给我指明正确的方向。因为我只能找到一种类型的例子。 我想要一张略有不同的牌的清单。或者我应该只使用和...不使用适配器和?