我有2個表加入同桌的計數兩次在不同的列
A
+----+-------+
| Id | User |
+----+-------+
| 1 | user1 |
| 2 | user2 |
| 3 | user3 |
+----+-------+
B
+----+--------+------+
| Id | UserId | Type |
+----+--------+------+
| 1 | 1 | A |
| 2 | 1 | B |
| 3 | 1 | C |
| 4 | 2 | A |
| 5 | 2 | B |
| 6 | 2 | C |
| 7 | 3 | A |
| 8 | 3 | C |
+----+--------+------+
UserId is FK from table A.Id
我試圖讓每種類型的數量和類型排列,如下面單個SQL查詢。 (例如計數甲^ B意味着用戶數誰具有類型A和B)用於每個排列計數
+---------+---------+---------+-----------+-----------+-----------+-------------+
| Count A | Count B | Count C | Count A^B | Count A^C | Count B^C | Count A^B^C |
+---------+---------+---------+-----------+-----------+-----------+-------------+
| 3 | 2 | 3 | 2 | 3 | 2 | 2 |
+---------+---------+---------+-----------+-----------+-----------+-------------+
或者單獨的查詢。
我試着在下面的查詢分別得到A和B類型的計數,它沒有工作。
SELECT count(b1.type) AS count_a, count(b2.type) AS count_b FROM A
JOIN B on A.id = B.user_id
WHERE b1.type = 'A' or b2.type = 'B'
GROUP BY A.id;
+---------+---------+
| Count A | Count B |
+---------+---------+
| 3 | 2 |
+---------+---------+
我不確定哪裏有兩個表或者^ ^代表什麼 –
@ExplosionPills這些只是列別名。 –
我更新了問題。希望它能解釋得更好。 基本上,計數A^B意味着具有A型和B型的用戶數 –