SQL |等值连接和非等值连接
左、右、全连接和 SQL | 中解释了 SQL 连接的类型。联接(笛卡尔联接和自联接)。本文将讨论 Remaining EQUI Join 和 NO N-EQUI。让我们一一讨论。
SQL 连接:
- EQUI加入
- NO N-EQUI加入
例子 -
让我们考虑下面给出的两个表。
表名——学生
在这个表中,你有 Id、name、class 和 city 是字段。
Select * from Student;
id | name | class | city |
---|---|---|---|
3 | Hina | 3 | Delhi |
4 | Megha | 2 | Delhi |
6 | Gouri | 2 | Delhi |
表名——记录
在这张表中,你有 Id,class 和 city 是字段。
Select * from Record;
id | class | city |
---|---|---|
9 | 3 | Delhi |
10 | 2 | Delhi |
12 | 2 | Delhi |
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;
输出 :
name | id | class | city |
---|---|---|---|
Hina | 3 | 3 | Delhi |
Megha | 4 | 3 | Delhi |
Gouri | 6 | 3 | Delhi |
Hina | 3 | 2 | Delhi |
Megha | 4 | 2 | Delhi |
Gouri | 6 | 2 | Delhi |
Hina | 3 | 2 | Delhi |
Megha | 4 | 2 | Delhi |
Gouri | 6 | 2 | Delhi |
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 ;
输出 :
name | id | city |
---|---|---|
Hina | 9 | Delhi |
Megha | 9 | Delhi |
Gouri | 9 | Delhi |
Hina | 10 | Delhi |
Megha | 10 | Delhi |
Gouri | 10 | Delhi |
Hina | 12 | Delhi |
Megha | 12 | Delhi |
Gouri | 12 | Delhi |