내가 freelanceFeedback의 주문과 같이 계산하여 계산하기 위해 노력하고있어 :MySQL을 -에 개수에 가입
$sql = "SELECT authentication.*, (SELECT COUNT(*) FROM freelanceFeedback) as taskscount FROM authentication
LEFT JOIN freelanceFeedback
ON authentication.userId=freelanceFeedback.FK_freelanceWinnerUserId
WHERE `FK_freelanceProvider`=$what
ORDER BY taskscount DESC";
을하지만 사용자가 여러 의견이있는 경우 나 여러 출력에 봉착하고 의해 주문 아니에요 taskscount. 나는 '트윗'이 무엇이 잘못되었는지
을 알아낼 수 없습니다 ..
을 ** UPDATE ** 나는 그것을 자신을 가지고 생각 : 이것은 단지 1을 출력한다
$sql = "SELECT DISTINCT authentication.*,
(SELECT COUNT(*) FROM freelanceFeedback
WHERE FK_freelanceWinnerUserId=userId
) as taskscount
FROM authentication
WHERE `FK_freelanceProvider`=$what
ORDER BY taskscount DESC";
사용자 및 주문 금액을 피드백 금액으로 표시합니다. 당신이 (어쨌든 나쁜 관행입니다) SELECT *를 수행하지 않는 경우
SELECT authentication.userId,
COUNT(freelanceFeedback.id) AS taskscount
FROM authentication
LEFT JOIN freelanceFeedback
ON authentication.userId = freelanceFeedback.FK_freelanceWinnerUserId
WHERE `FK_freelanceProvider`= $what
GROUP BY authentication.userId
ORDER BY taskscount DESC
그러나,이 경우에만 작동합니다 : 당신은 COUNT()를 사용하는 경우
샘플 표를 제공해주십시오. 나는 당신이 GROUP BY를 사용해야한다고 믿지만 샘플 데이터가없는 정확한 쿼리를 만드는 것은 어렵다. – mkk
당신이 할 수있는 경우에는 * 사용하지 마라. 때때로 성능이 좋지 않고 항상 가독성이 나쁘다. 원하는 열을 지정하고 COUNTING하는 경우 테이블 ID 만 사용하십시오. –