2011-02-12 5 views
0

나는 사용자, 트랙리스트, 코멘트, 투표라는 4 개의 테이블을 가지고 있습니다. MySql - 3 가지 다른 수를 반환합니다.

나는 각 사용자에 대해 트랙리스트의 수를 반환하고 싶었다, 그래서 나는이 쿼리 수행했습니다

SELECT datereg, nickname, count(*) 
FROM users JOIN tracklist ON nickname=usersub 
GROUP BY nickname 
ORDER BY count(*) DESC, nickname ASC 

지금, 나는 트랙리스트와의 의견과 투표 수를 반환하고자합니다.

SELECT datereg, nickname, count(*) 
FROM users JOIN tracklist ON nickname=usersub JOIN comments ON nickname=usercom JOIN votes ON nickname=uservote 
GROUP BY nickname 
ORDER BY count(*) DESC, nickname ASC 

을하지만 또한 투표를 들어, 트랙 목록에 대한 의견 1 1 1 3 가지 수 (*)를 반환하고 싶습니다 : 그래서 썼다.

물론 count (*)가 0이면 0을 반환하고 싶습니다. 따라서 값은 결과에 따라 달라 지므로 무시해서는 안됩니다.

어떻게이 쿼리를 수행 할 수 있습니까? 노력해 주셔서 감사합니다!

+1

별도의 하위 쿼리가있는 별도의 쿼리 또는 하나 이상의 쿼리가 필요할 수 있습니다. 이들은 서로 관련되지 않은 3 가지 데이터입니다. 관계가 없다면 데이터를 관계형 쿼리로 표현할 수 없습니다 ... –

+0

3 하위 쿼리를 수행하는 방법에 대해 잘 모르겠습니다. – markzzz

답변

3

3 개의 별도 하위 쿼리를 사용할 수 있습니다.

+0

Uhm .. 답장을 보내 주셔서 감사합니다. 그러나 나는 그것을 어떻게 할 수 있는가? – markzzz

+0

예 :'SELECT (SELECT COUNT (*) FROM table1) AS num1, (SELECT COUNT (*) FROM table2) AS num2' –

+0

이것은 작동하지 않을 것입니다! 사실 나는 선택 후 일종의 JOIN을 할 필요가있다. 적어도 나는 그렇게 생각한다. – markzzz

관련 문제