我有两个连接在一起的表:
book_types_purchased
是 ENUM('paperback','hardcover')
。我想返回这种类型的行:
book_title | paperback_date_purchased | hardcover_date_purchased
Is there a way to do this in MySQL?
UPDATE
Here is the answer from below with matching table names and left joins instead:
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'
最佳答案
您可以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'
关于MySQL "join as"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440790/