我有兩個表連接在一起:MySQL「join as」?
的book_types_purchased
是ENUM('paperback','hardcover')
。我想要得到這種類型的行返回:
book_title | paperback_date_purchased | hardcover_date_purchased
有沒有辦法在MySQL中做到這一點?
UPDATE
下面是從下面的答案與匹配表名和左,而不是加入:
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'
正如一邊:您可能想要最終重新考慮「book_types_purchased」的「ENUM」選項。例如,如果您將來需要添加數字或電子書「書籍類型」會怎樣? [這裏有一些更多的原因](http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/)... – summea 2013-03-15 19:42:21
@summea感謝文章,好讀。多虧了這一點,我已經改變了我正在努力加入相關表格的模式中的所有ENUM字段。 – 2013-03-23 19:01:28
對不起,額外的工作......但希望它可以幫助你從長遠來看... ...! – summea 2013-03-23 23:44:07