MySQL“加入为”?

Mik*_*unk 1 mysql sql

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

表图

是.book_types_purchasedENUM('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)

Roc*_*mat 5

你可以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)