LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
实战
从左表posts数据表里返回所有的行,并从右表categories类别数据表里匹配p.category_id = c.id行中的slug、name字段添加到返回数据行内
SELECT p.*, c.slug, c.name FROM posts p LEFT JOIN categories c ON p.category_id = c.id
注释:左表和右表字段名相同,则右表会覆盖左表。不妨取出右表字段名空格重命名试试。