我使用类似的查询(10)作为以下查询(修改)来查找总和
SELECT sum(amount) AS amount
FROM `students`
WHERE sex='M'
&& name in ('salil', 'anil', 'gaikwad')
...和
SELECT sum(amount) AS amount
FROM `students`
WHERE sex='M'
&& name in ('salil1', 'anil1', 'gaikwad1')
我想对上述10个查询进行单一查询。有可能吗?
答案 0 :(得分:1)
尝试这样的事情
SELECT sum(amount) AS amount
FROM students INNER JOIN
(SELECT 'salil%' Val UNION SELECT 'anil%' UNION SELECT 'gaikwad%') s ON students.NAME LIKE s.Val
WHERE sex='M'
这允许您使用第二个表中的值与 LIKE 一起加入。
答案 1 :(得分:1)
您可以使用UNION
SELECT 'subset1', sum(amount) AS amount FROM students WHERE sex='M' and name in ('salil', 'anil', 'gaikwad')
UNION
SELECT 'subset2', sum(amount) AS amount FROM students WHERE sex='M' and name in ('salil1', 'anil1', 'gaikwad1')
但是,您可能会查询这些学生群体的原因,也许是anil,salil和gaikwad是一组学生。如果是这样,您应该在数据库结构中反映出来,而不是在您的代码中。
你可以在学生表中添加一个字段'SUbset'或'Group'或者其他任何东西,所以它看起来像这样:
name group_id
salil 1
anil 1
gaikwad 1
salil1 2
...
然后你可以做
select group_id, sum(amount) from students group by group_id