📜  SQL |等值连接和非等值连接

📅  最后修改于: 2022-05-13 01:55:08.873000             🧑  作者: Mango

SQL |等值连接和非等值连接

左、右、全连接和 SQL | 中解释了 SQL 连接的类型。联接(笛卡尔联接和自联接)。本文将讨论 Remaining EQUI Join 和 NO N-EQUI。让我们一一讨论。

SQL 连接

  • EQUI加入
  • NO N-EQUI加入

例子 -

让我们考虑下面给出的两个表。

表名——学生

在这个表中,你有 Id、name、class 和 city 是字段。

Select * from Student;
idnameclasscity
3Hina3Delhi
4Megha2Delhi
6Gouri2Delhi

表名——记录

在这张表中,你有 Id,class 和 city 是字段。

Select * from Record;
idclasscity
93Delhi
102Delhi
122Delhi

1. 平等加入:

EQUI JOIN 为相关表的相等或匹配列值创建一个 JOIN。 EQUI JOIN 还通过使用 JOIN 和 ON 创建 JOIN,然后提供列的名称及其相关表,以使用等号 (=) 检查相等性。

句法 :

SELECT column_list  
FROM table1, table2....
WHERE table1.column_name =
table2.column_name;  

例子 -

SELECT student.name, student.id, record.class, record.city
FROM student, record
WHERE student.city = record.city;

或者

句法 :

SELECT column_list
FROM table1  
JOIN table2
[ON (join_condition)]

例子 -

SELECT student.name, student.id, record.class, record.city
FROM student
JOIN record
ON student.city = record.city;

输出 :

nameidclasscity
Hina33Delhi
Megha43Delhi
Gouri63Delhi
Hina32Delhi
Megha42Delhi
Gouri62Delhi
Hina32Delhi
Megha42Delhi
Gouri62Delhi

2. 非等值连接:

NON EQUI JOIN 使用除等号 (=) 以外的运算符(如 >、<、>=、<= 和条件)执行 JOIN。

句法:

SELECT *  
FROM table_name1, table_name2  
WHERE table_name1.column [> |  < |  >= | <= ] table_name2.column;

例子 -

SELECT student.name, record.id, record.city
FROM student, record
WHERE Student.id < Record.id ;

输出 :

nameidcity
Hina9Delhi
Megha9Delhi
Gouri9Delhi
Hina10Delhi
Megha10Delhi
Gouri10Delhi
Hina12Delhi
Megha12Delhi
Gouri12Delhi