2014-11-09 2 views
0

에 가입 나는 다음과 같은 쿼리가 : 나는 데이터베이스에서 10 토론을 선택하려고 해요MySQL의 한계 왼쪽 표는

SELECT * FROM (`bf_discussion`) JOIN `bf_discussion` as b ON `b`.`parent` = `bf_discussion`.`id` WHERE `bf_discussion`.`projec_id` = '1' LIMIT 10 

합니다. 각 토론에는 무한한 양의 하위 항목 (parent_id로 참조)이있을 수 있습니다.

제한없이 하위 토론을 검색하는 동안 LEFT 테이블을 10 개로 제한하려면 어떻게해야합니까?

이 쿼리에 대해

답변

1

부속 선택은 일반적으로 적합하지 않습니다 (나는 완벽 할 것 CodeIgniter는 내 좋은 해결책이있다, 그래서 만약 CodeIgniter는이를 사용하고 있습니다),하지만 어떻게? 귀하의 특정 project_id와 함께 최대 10 회의 토론을 할 수있을뿐만 아니라 부모 토론을 위해 모든 하위 토론을 반환 할 것입니다. 는 각 열의 중복을 반환하는 것을 제외하고 잘 작동하는 것 같다

SELECT 
parents.*, b.* 
FROM 
(SELECT * FROM bf_discussion 
    WHERE projec_id = 1 
    LIMIT 10) parents 
LEFT JOIN bf_discussion b ON parents.id = b.parent 
+0

... – Adam

+0

http://snag.gy/tY56Y.jpg – Adam

+0

그것은 당신의 스키마를 이해하지 않고이 문제를 해결하는 방법을 알려줄 수있는 조금 어렵다 보다 나은. 어쩌면 SELECT DISTINCT를 시도할까요? –