正确的语法是:
SELECT p.*, pms.meta_value as score, pmp.meta_value as phone
FROM wp_posts p LEFT JOIN
wp_postsmeta pms
ON pms.post_id = p.id AND pms.meta_key = 'score' LEFT JOIN
wp_postsmeta pmp
ON pmp.post_id = p.id AND pmp.meta_key = 'phone' ;
笔记:
-
表别名应该是有意义的。
r
没有意义
wp_posts
但是
p
做。
-
p.*
是个很奇怪的选择。我想你真的很想要posts表。
-
您应该为查询返回的值提供合理的名称,例如
score
和
phone
.
-
这个
where
子句在查询中既被放错位置又被误用。这些条件应该在
on
条款。
编辑:
你修改后的问题似乎表明:
SELECT pmp.meta_value as phone, SUM(pms.meta_value) as score,
FROM wp_postsmeta pms LEFT JOIN
wp_postsmeta pmp
ON pmp.post_id = pms.post_id AND pmp.meta_key = 'phone' and pms.meta_key = 'score'
GROUP BY phone;