正确的语法是什么?我知道这是错误的,因为我打电话了,但我需要这样的东西
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
即使此查询将起作用,我相信数据结构也不正确。顺便说一句,这是另一个问题。