AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
### **先列出使用实例:** 在table中就是没匹配到也获取table A的数据,反之使用INNER JOIN ``` SELECT A.id,A.name,A.brand,B.name as deviceName from device A LEFT JOIN device_type B on A.type = B.id ``` 获取A表格所有字段 ``` SELECT A.*,B.name as deviceName from device A LEFT JOIN device_type B on A.type = B.id ``` ## **INNER JOIN (内连接)** 这是最简单、最容易理解、最常用的JOIN方式。 内连接查询返回表A和表B中所有匹配行的结果。 SQL样例如下: ~~~ SELECT <select_list>FROM Table_A AINNER JOIN Table_B BON A.Key = B.Key ~~~ ## **LEFT JOIN (左连接)** LFET JOIN查询返回所有表A中的记录, 不管是否有匹配记录在表B中。它会返回所有表B中的匹配记录 (没有匹配的当然会标记成null了)。 SQL样例如下: ~~~ SELECT <select_list>FROM Table_A ALEFT JOIN Table_B BON A.Key = B.Key ~~~ **RIGHT JOIN (右连接)** 和LEFT JOIN相反。 RIGHT JOIN查询会返回所有表B中的记录,不管是否有匹配记录在表A中。它会返回所有表A中的匹配记录(没有匹配的当然会标记成null了)。 SQL样例如下: ~~~ SELECT <select_list>FROM Table_A ARIGHT JOIN Table_B BON A.Key = B.Key ~~~ **OUTER JOIN (外连接)** OUTER JOIN也可以当作是FULL OUTER JOIN 或者FULL JOIN。它会返回两个表中所有行,左表A匹配右表B,右表B也匹配左表A (没有匹配的就显示null了)。OUTER JOIN一般写成下面样子: ~~~ SELECT <select_list>FROM Table_A AFULL OUTER JOIN Table_B BON A.Key = B.Key ~~~ ## **LEFT Excluding JOIN** 它会返回表A中所有不在表B中的行,一般写成: ~~~ SELECT <select_list>FROM Table_A ALEFT JOIN Table_B BON A.Key = B.KeyWHERE B.Key IS NULL ~~~ **RIGHT Excluding JOIN** 与上面的相反,它会返回表B中所有不在表A中的行,SQL样例如下: ~~~ SELECT <select_list>FROM Table_A ARIGHT JOIN Table_B BON A.Key = B.KeyWHERE A.Key IS NULL ~~~ ## **OUTER Excluding JOIN** Outer Excluding JOIN 会返回所有表A和表B中没有匹配的行。我还没有遇到要用到这种情况的,但是其他的JOIN,用的比较频繁。 SQL样例如下: ~~~ SELECT <select_list>FROM Table_A AFULL OUTER JOIN Table_B BON A.Key = B.KeyWHERE A.Key IS NULL OR B.Key IS NULL ~~~