Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ---Posts----
- id | title | content |
- 544 | Alan | Blah
- ---Postmeta----
- metaid | post_id | meta_key | meta_value
- 1 | 544 | age | 45
- 2 | 544 | email | test@hotmail.co.uk
- SELECT posts.post_id,
- postmeta.age,
- postmeta.email,
- FROM
- posts
- JOIN posts
- ON posts.post_id = postmeta.post_id
- SELECT p.id, pm.age, pm.email
- FROM posts p
- JOIN
- (
- SELECT
- post_id,
- MAX(CASE WHEN meta_key = 'age' THEN meta_value END) AS age,
- MAX(CASE WHEN meta_key = 'email' THEN meta_value END) AS email
- FROM postsmeta
- GROUP BY post_id
- ) pm ON p.id = pm.post_id
- SELECT
- posts.id,
- postmeta.key,
- postmeta.meta_value
- FROM
- posts
- JOIN
- postmeta ON posts.id = postmeta.post_id
- WHERE
- postmeta.key IN ('age', 'email')
- SELECT posts.post_id,
- postmeta.age,
- postmeta.email,
- FROM
- posts
- JOIN postsmeta
- ON posts.post_id = postmeta.post_id
- SELECT posts.id,
- postmeta.age,
- postmeta.email,
- m.meta_key,
- m.meta_value
- FROM
- posts p
- JOIN Postmeta m
- ON p.id = m.post_id
- metaid | post_id | age | email
- 1 | 544 | 45 | test1@hotmail.co.uk
- 2 | 545 | 51 | test2@hotmail.co.uk
- 3 | 546 | 20 | test3@hotmail.co.uk
- 4 | 547 | 26 | test4@hotmail.co.uk
- SELECT posts.post_id, postmeta.age, postmeta.email FROM posts JOIN postmeta ON posts.post_id = postmeta.post_id;
- SELECT p.id,
- pm1.meta_value AS age,
- pm2.meta_value AS email
- FROM
- posts AS p
- LEFT JOIN
- postmeta AS pm1
- ON pm1.post_id = p.id
- AND pm1.meta_key = 'age'
- LEFT JOIN
- postmeta AS pm2
- ON pm2.post_id = p.id
- AND pm2.meta_key = 'email' ;
Add Comment
Please, Sign In to add comment