mysqli计数按多列分组
我想根据多列的参与情况计算行数mysqli计数按多列分组,mysql,Mysql,我想根据多列的参与情况计算行数 +----+---------------+--------------+ | ID | ticket_holder | ticket_buyer | +----+---------------+--------------+ | 1 | jim | jim | +----+---------------+--------------+ | 2 | sue | gor | +----+
+----+---------------+--------------+
| ID | ticket_holder | ticket_buyer |
+----+---------------+--------------+
| 1 | jim | jim |
+----+---------------+--------------+
| 2 | sue | gor |
+----+---------------+--------------+
| 3 | gor | jim |
+----+---------------+--------------+
| 4 | nic | jim |
+----+---------------+--------------+
我的tickets表是这样的,我想返回一个数组,该数组包含每个人的id,但也包含他们作为购票者或持票者参与的节目数(但不包括两次)
我想要的结果是这样的数组
+---------+--------------+
| user | ticket_count |
+---------+--------------+
| jim | 3 |
+---------+--------------+
| gor | 2 |
+---------+--------------+
| sue | 1 |
+---------+--------------+
| nic | 1 |
+---------+--------------+
你可以做的一件事是分别计算每个持票人或买票人的人数,然后减去他们的人数 要计算每个人成为持有人或买家的次数,您可以使用这些查询
select count(*), ticket_holder from table group by ticket_holder
select count(*), ticket_buyer from table group by ticket_buyer
要计算一个人既是买家又是持有人的次数:
select count(*), ticket_buyer from table where ticket_holder=ticket_buyer group by ticket_buyer
这些可以合并到一个查询中,但如果您在数据库之外进行计算,可能更容易理解和维护能否请您用代码更新您的问题,以便我们知道您迄今为止尝试了什么?谢谢如果您可以提供一些示例数据来创建表,您可以对DB运行
SHOW create TABLE TABLE name
,以获取创建表的SQL,这将是非常好的。或者,如果数据只是测试数据,您可以将其导出到屏幕并粘贴到其中。