Inner join根据一个或多个条件(使用ON关键字指定)仅返回在两个表中匹配/存在的记录/行。这是最常见的联接类型。的一般语法为inner join:
SELECT * FROM table_1 INNER JOIN table_2 ON table_1.column_name = table_2.column_name
也可以简化为JOIN:
SELECT * FROM table_1 JOIN table_2 ON table_1.column_name = table_2.column_name
例
/* Sample data. */ DECLARE @Animal table ( AnimalId Int IDENTITY, Animal Varchar(20) ); DECLARE @AnimalSound table ( AnimalSoundId Int IDENTITY, AnimalId Int, Sound Varchar(20) ); INSERT INTO @Animal (Animal) VALUES ('Dog'); INSERT INTO @Animal (Animal) VALUES ('Cat'); INSERT INTO @Animal (Animal) VALUES ('Elephant'); INSERT INTO @AnimalSound (AnimalId, Sound) VALUES (1, 'Barks'); INSERT INTO @AnimalSound (AnimalId, Sound) VALUES (2, 'Meows'); INSERT INTO @AnimalSound (AnimalId, Sound) VALUES (3, 'Trumpets'); /* Sample data prepared. */ SELECT * FROM @Animal JOIN @AnimalSound ON @Animal.AnimalId = @AnimalSound.AnimalId;
AnimalId Animal AnimalSoundId AnimalId Sound ----------- -------------------- ------------- ----------- -------------------- 1 Dog 1 1 Barks 2 Cat 2 2 Meows 3 Elephant 3 3 Trumpets
将内部联接与左侧外部联接一起使用(不存在替代)
该查询将返回表1中的数据,其中与带有条件键的table2匹配的字段和与带条件键的Table2进行比较时不在表1中的数据
select * from Table1 t1 inner join Table2 t2 on t1.ID_Column =t2.ID_Column left join Table3 t3 on t1.ID_Column =t3.ID_Column wheret2.column_name= column_value andt3.ID_Columnis null order by t1.column_name;
如何在Hibernate中编写此SQL查询?我想使用Hibernate创建查询,而不是创建数据库。 我在SQLServer2008中创建了实体类, 我尝试用多种方法构建工作选择查询,但仍然不起作用。 也许实体有问题?
问题内容: 我想了解当CSS是CSS元素的DOM子元素(因此block元素是inline元素的子元素)时会发生什么情况。 CSS 2.1规范的“ 匿名块框”部分描述了这种情况:该示例包括以下规则… …以及随附的文字说… BODY元素包含一个匿名文本块(C1),然后是一个块级元素,然后是另一个匿名文本块(C2)。结果框将是围绕BODY的匿名阻止框,其中包含C1周围的匿名阻止框,P阻止框和C2周围包含
问题内容: 如何在Hibernate中编写此SQL查询?我想使用Hibernate创建查询,而不是创建数据库。 我在SQLServer2008中创建了实体类, 我试图以多种方式构建有效的选择查询,但仍然无法正常工作。 实体有问题吗? 问题答案: 连接只能在实体之间存在关联时使用。您的Employee实体不应将名称为,类型为的字段映射到列。它应该与Team实体具有ManyToOne关联,并映射为Jo
问题内容: 我似乎无法内部连接到教师表以获得名字和姓氏。 我收到的错误消息是 问题答案: 以下错误是因为您未指定列: Msg 8156,第16级,状态1,第3行 为“ MaxBookingDays”多次指定了“ ID”列。 因此,我将您的查询稍作更改,如下所示:
问题内容: 我想使用我的数据库通过电子邮件与我的用户联系。我想确保我不会不小心联系同一位用户两次。为此,我有一张表来跟踪与谁联系以及何时联系。 当我执行MYSQL查询时,我想从表中选择电子邮件,并确保表中不存在这些条目。 要在句子中添加短语:如果电子邮件不在Contacted_Table中,请从Email_Table中选择电子邮件 也许有一种完全不同的方法。我愿意接受所有建议:)谢谢:) 问题答案
问题内容: 我有以下代码: 当我加入ou时,我得到2个相同单位的ID。这使内部联接tblOrderServiceUnits返回4行,其中2行重复。我需要它只返回不同的2行。如何仅使用不重复到内部联接的不重复ou.id? 不好意思的解释很抱歉,但是基本上我是想看看带有不同子查询的INNER JOIN如何工作,如果有人可以给我一个例子,我可以从那里弄清楚。 问题答案: 例如: