Guest User

Untitled

a guest
Jan 20th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. ---Posts----
  2.  
  3. id | title | content |
  4. 544 | Alan | Blah
  5.  
  6. ---Postmeta----
  7.  
  8. metaid | post_id | meta_key | meta_value
  9. 1 | 544 | age | 45
  10. 2 | 544 | email | test@hotmail.co.uk
  11.  
  12. SELECT posts.post_id,
  13. postmeta.age,
  14. postmeta.email,
  15. FROM
  16. posts
  17. JOIN posts
  18. ON posts.post_id = postmeta.post_id
  19.  
  20. SELECT p.id, pm.age, pm.email
  21. FROM posts p
  22. JOIN
  23. (
  24. SELECT
  25. post_id,
  26. MAX(CASE WHEN meta_key = 'age' THEN meta_value END) AS age,
  27. MAX(CASE WHEN meta_key = 'email' THEN meta_value END) AS email
  28. FROM postsmeta
  29. GROUP BY post_id
  30. ) pm ON p.id = pm.post_id
  31.  
  32. SELECT
  33. posts.id,
  34. postmeta.key,
  35. postmeta.meta_value
  36. FROM
  37. posts
  38. JOIN
  39. postmeta ON posts.id = postmeta.post_id
  40. WHERE
  41. postmeta.key IN ('age', 'email')
  42.  
  43. SELECT posts.post_id,
  44. postmeta.age,
  45. postmeta.email,
  46. FROM
  47. posts
  48. JOIN postsmeta
  49. ON posts.post_id = postmeta.post_id
  50.  
  51. SELECT posts.id,
  52. postmeta.age,
  53. postmeta.email,
  54. m.meta_key,
  55. m.meta_value
  56. FROM
  57. posts p
  58. JOIN Postmeta m
  59. ON p.id = m.post_id
  60.  
  61. metaid | post_id | age | email
  62. 1 | 544 | 45 | test1@hotmail.co.uk
  63. 2 | 545 | 51 | test2@hotmail.co.uk
  64. 3 | 546 | 20 | test3@hotmail.co.uk
  65. 4 | 547 | 26 | test4@hotmail.co.uk
  66.  
  67. SELECT posts.post_id, postmeta.age, postmeta.email FROM posts JOIN postmeta ON posts.post_id = postmeta.post_id;
  68.  
  69. SELECT p.id,
  70. pm1.meta_value AS age,
  71. pm2.meta_value AS email
  72. FROM
  73. posts AS p
  74. LEFT JOIN
  75. postmeta AS pm1
  76. ON pm1.post_id = p.id
  77. AND pm1.meta_key = 'age'
  78.  
  79. LEFT JOIN
  80. postmeta AS pm2
  81. ON pm2.post_id = p.id
  82. AND pm2.meta_key = 'email' ;
Add Comment
Please, Sign In to add comment