SQL Joins 子句用于合并数据库中两个或多个表中的记录,JOIN是一种通过使用每个表的公用值来组合两个表中的字段的方法。
考虑以下两个表-
表1 -客户表(CUSTOMERS)
+----+----------+-----+-----------+----------+ | ID | NAME | AGE | ADDRESS | SALARY | +----+----------+-----+-----------+----------+ | 1 | Ramesh | 32 | Ahmedabad | 2000.00 | | 2 | Khilan | 25 | Delhi | 1500.00 | | 3 | kaushik | 23 | Kota | 2000.00 | | 4 | Chaitali | 25 | Mumbai | 6500.00 | | 5 | Hardik | 27 | Bhopal | 8500.00 | | 6 | Komal | 22 | MP | 4500.00 | | 7 | Learnfk | 24 | Indore | 10000.00 | +----+----------+-----+-----------+----------+
表2 -订单表(ORDERS)
+-----+---------------------+-------------+--------+ |OID | DATE | CUSTOMER_ID | AMOUNT | +-----+---------------------+-------------+--------+ | 102 | 2019-10-08 00:00:00 | 3 | 3000 | | 100 | 2019-10-08 00:00:00 | 3 | 1500 | | 101 | 2019-11-20 00:00:00 | 2 | 1560 | | 103 | 2018-05-20 00:00:00 | 4 | 2060 | +-----+---------------------+-------------+--------+
现在,让无涯教程将这两个表连接到SELECT语句中,如下所示。
SQL> SELECT ID, NAME, AGE, AMOUNT FROM CUSTOMERS, ORDERS WHERE CUSTOMERS.ID = ORDERS.CUSTOMER_ID;
这将产生以下输出。
+----+----------+-----+--------+ | ID | NAME | AGE | AMOUNT | +----+----------+-----+--------+ | 3 | kaushik | 23 | 3000 | | 3 | kaushik | 23 | 1500 | | 2 | Khilan | 25 | 1560 | | 4 | Chaitali | 25 | 2060 | +----+----------+-----+--------+
在这里,值得注意的是,联接是在WHERE子句中执行的,可以使用多个运算符来联接表,例如=,<,>,<>,<=,> =,!=,BETWEEN,LIKE和NOT,它们都可以用于联接表。
SQL中有不同类型的联接可用-
INNER JOIN - 当两个表均匹配时返回行。
LEFT JOIN - 返回左表中的所有行,即使右表中没有匹配项。
RIGHT JOIN - 返回右表中的所有行,即使左表中没有匹配项。
FULL JOIN - 当其中一个表中存在匹配项时返回行。
SELF JOIN - 用于将表联接到自身,就好像该表是两个表一样,至少暂时重命名SQL语句中的一张表。
CARTESIAN JOIN - 从两个或多个联接表中返回记录集的笛卡尔积。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)