如何查询所有出版社(含未出书的出版社)?MySQL技术问题
解决获取所有出版社列表的问题
你当前的查询以book表为基准做左连接,只会保留有对应书籍的出版社记录。要获取所有出版社(包括未出版任何书籍的),只需调整连接的主表顺序,以publisher表为核心构建查询:
方法1:以publisher为主表做LEFT JOIN
SELECT b.title, p.publisher_name, p.publisher_id FROM publisher p LEFT JOIN book b ON p.publisher_id = b.publisher_id;
方法2:使用RIGHT JOIN
SELECT b.title, p.publisher_name, p.publisher_id FROM book b RIGHT JOIN publisher p ON p.publisher_id = b.publisher_id;
两种写法效果完全一致,都会返回全部8家出版社数据。对于未出版书籍的出版社,title字段会显示为NULL,其余出版社相关字段正常展示。
内容的提问来源于stack exchange,提问作者oljo
相关产品推荐
相关产品推荐

