SQL PIVOT after an INNER JOIN

Bastien Bastiens

I'm trying to create and event page from the data in my wordpress database. The data are saved in 2 tables ($wp_posts and $wp_postmeta). After the INNER JOIN i need to PIVOT the table $wp_postmeta but after multiple tries i cannot figure out how to do it.

My Query is :

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

I need to have the "meta_key" from the table $wp_postmeta to become column names then to be able to select meta_values

Database

Thank you for your help with my query.

John Ruddell

MySQL doesn't have the ability to run a pivot.. but you can fake a pivot.

NOTE:

you need to know the number of rows you want to pivot.

QUERY:

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

ANOTHER NOTE:

if you want to select the meta_values from this query.. as it not just pivot the result but actually select specific stuff you can select from this query like I did to pivot it.

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

inner join with pivot condition sql

分類Dev

SQL - Inner Join Syntax after the on statement

分類Dev

SQL Inner Join 2 Tables

分類Dev

Inner Join with Sum in oracle SQL

分類Dev

SQL query - multiple inner join

分類Dev

SQL Inner Join With Multiple Columns

分類Dev

mysql additional condition after INNER JOIN, ON

分類Dev

How to Delete using INNER JOIN with SQL Server?

分類Dev

SQL server inner join not returning Description

分類Dev

SQL QUERY Inner Join missing data

分類Dev

SQL Server: inner join running total

分類Dev

SQL update selected rows with INNER JOIN

分類Dev

SQL Inner Join using Distinct and Order by Desc

分類Dev

SQL inner join list split for an SSRS report

分類Dev

SQL Server 2008PIVOTおよびJOIN

分類Dev

Don't understand why inner join is necessary for filtering in sql

分類Dev

Update With Inner Join throwing SQL command not properly ended error

分類Dev

How to remove duplicate values from SQL inner join tables?

分類Dev

Merging rows to one row with inner join in SQL Server

分類Dev

Simple max() function and inner join T-SQL

分類Dev

sql selecting from two tables without inner join

分類Dev

サブクエリ SQL 内の INNER JOIN

分類Dev

How to write a SQL query that subtracts INNER JOIN results from LEFT JOIN results?

分類Dev

SQLのEqui-JoinとInner-Joinの違い

分類Dev

SQL での INNER JOIN と LEFT JOIN のパフォーマンス

分類Dev

複数のJoin / Inner Join SQLで条件を絞り込む

分類Dev

HQL Hibernate INNER JOIN

分類Dev

Hibernate INNER JOIN ManyToOne

分類Dev

INNER JOIN ON vsWHERE句