최다수강 강좌 메인에 2개 출력시키려면? 정보
최다수강 강좌 메인에 2개 출력시키려면?본문
개발자 여러분, 안녕하세요? 먼저 문의드리는 개발 환경은 Apache 서버 + Linux OS 서버에 PHP 4.x , MySQL 4.X 입니다. 홈페이지_DB = MyDB 동영상강좌_테이블 = Lecture 수강내역_테이블 = Attend 라고 할 때, Lecture/Attend의 ID필드는 Primary Key이며 Lecture.ID = Attend.Lecture_ID 입니다. 조건은 최다 수강신청된 동영상강좌만 출력해서 메인페이지에 순차적으로 2개 정도 뿌려주려고 합니다. (오름차순) 대략 다음과 같은 테이블 구조를 가지게 되죠. -------------------------------- | 강의IMG | 강의IMG | | | | -------------------------------- | 강의제목 | 강의제목 | -------------------------------- Lecture 테이블 구조는 ID /Name /Image /Category_ID 등이 있고 Attend 테이블 구조는 ID /Lecture_ID /Member_ID 등이 있습니다. 디자이너라서 복잡한 PHP+MySQL 코드를 수정하거나 직접 작성하기가 쉽지 않네요. 그누보드로 개발한 게 아니라 외주 개발자가 직접 작성한 코드를 수정하려고 했는데, 제 뜻대로 안되고 개발자와도 연락이 잘 되지 않아서 이곳에 한 번 도움을 청해 봅니다. ㅜㅜ ; 짬이 나시는 개발자께서는 제 질문에 가장 적합한 코드를 답글을 달아서 추천해 주시면 대단히 감사하겠습니다. |
댓글 전체
SELECT * FROM Lecture WHERE ID in (SELECT Lecture_ID FROM Attend GROUP BY Lecture_ID ORDER BY COUNT(Lecture_ID) DESC LIMIT 0, 2
이게 맞는지는 모르겠습니다...테스트를 안 해 봐서 ;;
이게 맞는지는 모르겠습니다...테스트를 안 해 봐서 ;;
sub select 가 아마도 안 될걸요?
최소한 버젼 mysql 5 이상 되야 먹는 명령어 인듯
..
최소한 버젼 mysql 5 이상 되야 먹는 명령어 인듯
..

4.1이상부터 사용 가능합니다.

조인으로 바꾸면 이렇습니다.
SELECT A.* FROM Lecture A inner join Attend B on A.Lecture_id=B.Lecture_id GROUP BY B.Lecture_ID ORDER BY COUNT(B.Lecture_ID) DESC LIMIT 0, 2
SELECT A.* FROM Lecture A inner join Attend B on A.Lecture_id=B.Lecture_id GROUP BY B.Lecture_ID ORDER BY COUNT(B.Lecture_ID) DESC LIMIT 0, 2