What is a join
The query, instructs the server to use the foreign_key as the transportation between two or more tables, thereby allowing columns from both tables to be included in the query's result set.
- cross join: rarely be used, 简单的将两张表"乘"起来
SELECT c.first_name, c.last_name, a.address FROM customer c JOIN address a; Inner Joins
- Describe how two tables how to related.
查询过程(以customer和address为例)
- 首先,在customer的表内查找到address_id的值;
- 然后根据address_id,在address表内对地点名称进行查询,拼接到表后。
code
SELECT c.first_name, c.last_name, a.address FROM customer c INNER JOIN address a ON c.address_id = a.address_id;- 首先,在customer的表内查找到address_id的值;
- Inner Join 和 Outer Join
- 当某个表内的foreign_key在另一个表内查找不到时,会在查询结果中删除此行。如custmor.address_id=999,但在address表内无999这个address_id时,查询结果不会显示该行。
- 当不指定Join类型时,默认使用
INNER JOIN - 当join的两个表的field名称相同,可使用
USING()