별도의 쿼리로 두 개의 테이블을 쿼리하고 있습니다. 그런 식으로하면 1 초 이내에 올바른 결과를 얻을 수 있지만, 병합을 시도하면 쿼리 (레코드가 많음)를 죽여야하기까지 정말 오래 걸립니다. 내가 뭘 잘못하고 있는지 궁금해.테이블을 결합하는 동안 MySQL 잘못된 쿼리
원하는 출력
+--------+-----------+-----------+-----------+
| name | computers | printers | tvs |
+--------+-----------+-----------+-----------+
| Peter | 12 | 1 | 5 |
| Josh | 20 | 4 | |
| Bob | 15 | 4 | 9 |
+--------+-----------+-----------+-----------+
검색어 1
SELECT
names.name,
SUM(IF(pcs.electronic = 'computers', 1,0)) AS computers,
SUM(IF(pcs.electronic = 'printers', 1,0)) AS printers
FROM
electronics.pcs LEFT JOIN electronics.orders
ON pcs.id = orders.id
LEFT JOIN electronics.buying
ON orders.id = buying.id
LEFT JOIN dbnames.names names
ON names.clientid = pcs.clientid
WHERE
pcs.clientid IS NOT NULL AND
pcs.belongs IN (10)
GROUP BY pcs.clientid
표 1 - 질의 1
+--------+-----------+-----------+
| name | computers | printers |
+--------+-----------+-----------+
| Peter | 12 | 1 |
| Josh | 20 | 4 |
| Bob | 15 | 4 |
+--------+-----------+-----------+
쿼리 2
SELECT
names.name,
SUM(IF(tvs.electronic = 'tvs', 1,0)) AS tvs
FROM
electronics.tvs LEFT JOIN dbnames.names names
ON names.clientid = tvs.clientid
WHERE
tvs.belongs IN (10)
GROUP BY tvs.clientid
표 2 - 쿼리 2
+--------+-----------+
| name | tvs |
+--------+-----------+
| Peter | 5 |
| Bob | 9 |
+--------+-----------+
좋아요, 감사합니다 여러분! – Mike79