用途:
SELECT c.*,
cm.*
FROM CONTENT c
JOIN CONTENT_META cm ON cm.content_id = c.id
只有在Content_元表中有支持记录时,才会返回内容和相关内容。如果内容记录可能没有任何内容元数据,请使用左联接:
SELECT c.*,
cm.* --these columns will be null if there is no supporting data
FROM CONTENT c
LEFT JOIN CONTENT_META cm ON cm.content_id = c.id
后续问题-
现在可以按content.id分组,但是要用它自己的值重命名meta-key列,而这个列的值是meta-value的内容?
MySQL没有透视语法-必须使用case语句:
SELECT c.id,
MAX(CASE WHEN cm.meta_key = 'A' THEN cm.meta_value ELSE NULL END) AS 'A',
MAX(CASE WHEN cm.meta_key = 'B' THEN cm.meta_value ELSE NULL END) AS 'B',
MAX(CASE WHEN cm.meta_key = 'C' THEN cm.meta_value ELSE NULL END) AS 'C'
FROM CONTENT c
JOIN CONTENT_META cm ON cm.content_id = c.id
GROUP BY c.id
您必须指定
meta_key
对于要在结果集中显示的每一个。