内连接
只有进行连接查询的两个表中都存在与连接条件相匹配的数据才会被保留下来。
JOIN...ON...
SELECT order_id,oi.product_id,oi.unit_price op,p.unit_price pp
FROM order_items oi
JOIN products p ON oi.product_id = p.product_id;注意:使用别名后,只能用别名
可跨数据库连接,在表名前加上数据库名
当出现复合主键时,使用复合连接条件
USE sql_store;
SELECT *
FROM order_items oi
JOIN order_item_notes oin
ON oi.order_id = oin.order_id
AND oin.product_id = oin.product_id
外连接
LEFT JOIN ... ON ... 查询展示的时候以左表的信息为主,相对应的右表如果没有信息会显示null
RIGHT JOIN .... ON ... 查询展示的时候以右表的信息为主,相对应的左表如果没有信息会显示null
JOIN .... USING() 如果表中有列名是完全一样的,可以用USING子句替换ON子句
自然连接
NATURAL JOIN 数据库引擎会自己基于共同的列连接
交叉连接
CORSS JOIN
使用交叉连接结合或者连接第一个表的每条记录和第二个表的每条记录。