我正在使用 PHP。我想编写一个满足某些条件的查询。
Add totals from field_id=198 for logged-in [userid] if
wp_frm_item_metas field_id=253 where meta_value=Complete
and
wp_frm_item_metas field_id=278 wheremeta_value=Yes
and
wp_frm_item_metas field_id=212 is between Begin and End date
wp_frm_item_metas field_id=270wheremeta_value=[userid of logged in user]
表结构:
CREATE TABLE IF NOT EXISTS `wp_frm_item_metas` (
`id` int(11) NOT NULL,
`meta_value` longtext,
`field_id` int(11) NOT NULL,
`item_id` int(11) NOT NULL,
`created_at` datetime NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=200 DEFAULT CHARSET=utf8;
表格数据
INSERT INTO `wp_frm_item_metas` (`id`, `meta_value`, `field_id`, `item_id`, `created_at`) VALUES
(2072, '591.00', 198, 181, '2015-05-17 22:10:02'),
(1640, 'Complete', 253, 156, '2015-05-14 21:38:26'),
(1714, 'Complete', 253, 161, '2015-05-16 02:11:50'),
(1747, 'Complete', 253, 163, '2015-05-16 02:23:13'),
(1909, 'Complete', 253, 172, '2015-05-17 01:12:11'),
(2094, 'Yes', 278, 182, '2015-05-17 23:31:03'),
(2113, 'Yes', 278, 183, '2015-05-17 23:42:11'),
(2090, '2015-05-19', 212, 182, '2015-05-17 23:31:03'),
(2109, '2015-05-20', 212, 183, '2015-05-17 23:42:11'),
(2100, '106', 270, 182, '2015-05-17 23:31:03'),
(2119, '106', 270, 183, '2015-05-17 23:42:11');
SELECT sum(meta_value)
FROM wp_frm_item_metas
WHERE field_id=198
and meta_value=
(select meta_value
from wp_frm_item_metas
where field_id=253
and meta_value="Complete")
and meta_value=
(select meta_value
from wp_frm_item_metas
where field_id=278
and meta_value="Yes")
and meta_value=
(select meta_value
from wp_frm_item_metas
where field_id=270
and meta_value=106).
我尝试了这个查询,但它显示错误为:
Subquery returns more than 1 row
如何找到满足上述条件的“meta_value”字段的总和?
最佳答案
这将避免错误,并且可能是您真正想要的(尽管我看不到这些 field_ids 和 meta_values 之间的任何关系...)
SELECT sum(meta_value)
FROM wp_frm_item_metas
WHERE field_id=198
and EXISTS
(select meta_value
from wp_frm_item_metas
where field_id=253
and meta_value="Complete")
and EXISTS
(select meta_value
from wp_frm_item_metas
where field_id=278
and meta_value="Yes")
and EXISTS
(select meta_value
from wp_frm_item_metas
where field_id=270
and meta_value=106)
关于mysql - 使用php查询计算字段总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30295430/