正确的语法是什么?我知道这是错误的,因为我打电话了,但我需要这样的东西

SELECT *
FROM `wp_postmeta`
WHERE `meta_key` = 'request_count' AND (`meta_key` = 'approval' AND `meta_value` = '1');


我尝试了这个

SELECT *
FROM `wp_postmeta`
WHERE `meta_key` IN ('request_count','approval') AND `meta_value` = '1';


但是它并没有做我想做的事。

编辑

ID |Meta_key       | Meta_value|
1  |request_count  | 1         |
1  |approval       | 1         |
2  |approval       | 1         |
3  |request_count  | 2         |
3  |approval       | 2         |


我想显示ID 1,因为它在meta_key中有一个request_count并且在meta_key中它的批准等于1

最佳答案

根据您的示例数据,以下查询应该起作用:

SELECT pm.*, (select pm2.value FROM wp_postmeta pm2 WHERE pm2.post_id = pm.post_id AND pm2.`key` = 'approval' AND pm2.`value` = '1') AS approval
FROM wp_postmeta pm
WHERE pm.`key` = 'request_count'
HAVING approval = 1


即使此查询将起作用,我相信数据结构也不正确。顺便说一句,这是另一个问题。

10-06 01:13