钟二网络头像

钟二网络

探索SQL查询技巧、Linux系统运维以及Web开发前沿技术,提供一站式的学习体验

  • 文章92531
  • 阅读865752
首页 SQL 正文内容

sql没有外键多表如何连接

钟逸 SQL 2024-05-28 12:49:56 37

当sql表中没有外键,而我们需要连接多张表进行查询时,可以使用以下 :

自然连接

自然连接是基于两个表中具有相同名称的列进行连接。当两个表中具有相同的列时,自然连接会自动连接具有相同值的记录。

SELECT *

FROM table1

NATURAL JOIN table2;

内部连接

内部连接使用ON子句连接两个表中的记录,ON子句指定了连接条件,即两个表中要匹配的列。

SELECT *

FROM table1

INNER JOIN table2 ON table1.id = table2.id;

外部连接

外部连接除了匹配的记录外,还会返回不匹配的记录。有两种类型的外部连接:

* **左外部连接:**返回表1中的所有记录,以及表2中匹配的记录。不匹配的表2记录用NULL填充。

SELECT *

FROM table1

LEFT JOIN table2 ON table1.id = table2.id;

* **右外部连接:**返回表2中的所有记录,以及表1中匹配的记录。不匹配的表1记录用NULL填充。

SELECT *

FROM table1

RIGHT JOIN table2 ON table1.id = table2.id;

交叉连接

交叉连接返回两个表中所有记录的笛卡儿积,即每个表中的每个记录都与另一表中的每个记录相连接。

SELECT *

FROM table1

CROSS JOIN table2;

选择合适的连接类型取决于表结构和查询要求。通过使用这些连接 ,即使在sql没有外键的情况下,也可以实现多个表格之间的有效连接。

文章目录
    搜索