我正在尝试从我的wordpress数据库中的数据创建和事件页面。 数据保存在2个表中($ wp_posts和$ wp_postmeta)。在INNER JOIN之后我需要PIVOT表$ wp_postmeta但经过多次尝试后我无法弄清楚如何去做。
我的查询是:
SELECT
PO.ID,
PO.post_title,
PO.post_content,
PM.post_id,
PM.meta_key,
PM.meta_value
FROM $wp_posts PO
INNER JOIN $wp_postmeta PM ON PO.ID = PM.post_id
我需要从表$ wp_postmeta中获取“meta_key”才能成为列名,然后才能选择meta_values
感谢您对我的查询提供的帮助。
答案 0 :(得分:4)
MySQL没有能力运行枢轴..但你可以假装一个支点。
您需要知道要转动的行数。
SELECT
MAX(CASE meta_key WHEN '_EventOrganizerID' THEN meta_value END )AS _EventOrganizerID,
MAX(CASE meta_key WHEN '_EventURL' THEN meta_value END )AS _EventURL,
MAX(CASE meta_key WHEN '_EventCost' THEN meta_value END )AS _EventCost,
MAX(CASE meta_key WHEN '_EventCurrencyPosition' THEN meta_value END )AS _EventCurrencyPosition,
MAX(CASE meta_key WHEN '_EventCurrencySymbol' THEN meta_value END)AS _EventCurrencySymbol,
MAX(CASE meta_key WHEN '_EventVenueID' THEN meta_value END )AS _EventVenueID,
MAX(CASE meta_key WHEN '_EventDuration' THEN meta_value END )AS _EventDuration,
MAX(CASE meta_key WHEN '_EventEndDate' THEN meta_value END )AS _EventEndDate,
MAX(CASE meta_key WHEN '_EventStartDate' THEN meta_value END )AS _EventStartDate,
MAX(CASE meta_key WHEN '_EventAllDay' THEN meta_value END )AS _EventAllDay
FROM
( SELECT
PO.ID,
PO.post_title,
PO.post_content,
PM.post_id,
PM.meta_key,
PM.meta_value
FROM $wp_posts PO
INNER JOIN $wp_postmeta PM ON PO.ID = PM.post_id
) t
GROUP BY post_id
如果你想从这个查询中选择meta_values ..因为它不仅仅是转动结果,而是实际选择你可以从这个查询中选择的特定内容,就像我转动它一样。