2
我已经知道我可以使用union
在MySQL中进行外连接。 我也检查这一个。 Full Outer Join in MySQL在mysql中执行完全外连接
但我想要做这样的事情,我不知道如何使用union来实现这一点。我有db表user_count
如下。
+-------------+-----------+---------+-------+
| meb_id | left_id |right_id |active |
+-------------+-----------+---------+-------+
| 1001 | (NULL) | (NULL) | 1 |
| 1002 | 1001 | 0 | 0 |
| 1003 | 0 | 1001 | 0 |
| 1004 | 1001 | 0 | 0 |
| 1004 | 1002 | 0 | 0 |
+-------------+-----------+---------+-------+
我有疑问如下。
SELECT left_id, COUNT(left_id) AS left_count FROM `user_count` GROUP BY left_id
SELECT right_id, COUNT(right_id) AS right_count FROM `user_count` GROUP BY right_id;
SELECT left_id AS meb_id, COUNT(left_id) AS active_left_count FROM `user_count` WHERE active = 1 GROUP BY left_id;
SELECT right_id AS meb_id, COUNT(right_id) AS active_right_count FROM `user_count` WHERE active = 1 GROUP BY right_id;
我想瓶坯外连接或联合,所以我的结果会是这样
+-------------+-----------+------------+------------+--------------+
| meb_id |left_count |right_count |active_left |active_right |
+-------------+-----------+------------+------------+--------------+
| (NULL) | 0 | 0 | 0 | 0 |
| 0 | 1 | 3 | 0 | 0 |
| 1001 | 2 | 1 | 0 | 0 |
| 1002 | 1 | 0 | 0 | 0 |
| 1003 | 0 | 0 | 0 | 0 |
+-------------+-----------+------------+------------+--------------+
我怎样才能做到这一点。任何帮助不胜感激。
你的结果是没有意义的我。为什么1001有2个正确的计数,而不是1?什么是0 meb_id?和null?你需要给一个公式,一些逻辑,不要让我们想你想要什么 – Cosmin
@Cosmin Sry其实它的1.错误我写了2. 我要编辑这个。 希望你现在明白吧。 –
@Cosmin 其实没有公式。我只需要按特定列计算left_id和right_id组。正如你在结果表中所看到的,我希望有和没有活动条件的所有左和右id的数量。 –