===============================
ID | NAME
----------------------------------------------
n1 | BLACK
n2 | WHITE
n3 | RED
n4 | GREEN
===============================
TABLE B Code (PHP)
==============================
ID | A_ID | BLABLA | TIME
-----------------------------------------------
1 | n1 | X | เวลาที่แตกต่าง
2 | n1 | X | เวลาที่แตกต่าง
3 | n1 | X | เวลาที่แตกต่าง
4 | n1 | Y | เวลาที่แตกต่าง
5 | n1 | Z | เวลาที่แตกต่าง
6 | n2 | Y | เวลาที่แตกต่าง
7 | n2 | Y | เวลาที่แตกต่าง
8 | n2 | Y | เวลาที่แตกต่าง
9 | n3 | X | เวลาที่แตกต่าง
10| n3 | Z | เวลาที่แตกต่าง
11| n3 | Z | เวลาที่แตกต่าง
12| n3 | Z | เวลาที่แตกต่าง
==================================
========================================
NAME | X | Y | Z
---------------------------------------------------------------
BLACK | 3 | 1 | 0
WHITE | 0 | 3 | 0
RED | 1 | 0 | 3
GREEN | 0 | 0 | 0
=======================================
SELECT
a.name
, sum(CASE WHEN b.blabla LIKE 'X' THEN 1 ELSE 0 END) AS X
, sum(CASE WHEN b.blabla LIKE 'Y' THEN 1 ELSE 0 END) AS Y
, sum(CASE WHEN b.blabla LIKE 'Z' THEN 1 ELSE 0 END) AS Z
FROM tablea a
INNER JOIN tableb b ON (a.id = b.a_id)
GROUP BY a.name
ในกรณีที่เปรียบเทียบเป็นตัวเลข เปลี่ยน LIKE เป็น = แทนนะครับ