我有两个连接在一起的表:

是.book_types_purchased ENUM('paperback','hardcover')我想返回这种类型的行:
书名 | 平装本购买日期 | 精装_购买日期
MySQL 有没有办法做到这一点?
这是下面的答案,其中包含匹配的表名称和左连接:
SELECT title,
paperback.date_purchased AS paperback_date_purchased,
hardcover.date_purchased AS hardcover_date_purchased
FROM book_projects
LEFT JOIN book_types_purchased AS paperback
ON paperback.book_project_id = book_projects.id
AND paperback.type = 'paperback'
LEFT JOIN book_types_purchased AS hardcover
ON hardcover.book_project_id = book_projects.id
AND hardcover.type = 'hardcover'
Run Code Online (Sandbox Code Playgroud)
你可以JOIN上桌book_types_purchased两次。每种类型一个。
SELECT title,
paperback.date_purchased AS paperback_date_purchased,
hardcover.date_purchased AS hardcover_date_purchased
FROM book_projects
JOIN date_purchased AS paperback ON paperback.book_project_id = book_projects.id
AND paperback.type = 'paperback'
JOIN date_purchased AS hardcover ON hardcover.book_project_id = book_projects.id
AND hardcover.type = 'hardcover'
Run Code Online (Sandbox Code Playgroud)