아무에게도 설명 할 수 없으므로이 mysql 쿼리가 'on clause'의 "Unknown column 'n.Id'오류를 발생시키는 이유는 무엇입니까? 그것은 정말로 나에게 어떤 의미가 없습니다.왼쪽 조인을 사용하여 mySQL의 중첩 세트
SELECT n.Id,
n.Name,
COUNT(*)-1 AS level,
seo.URLName
FROM NestedSetsTable AS n,
NestedSetsTable AS p
LEFT JOIN SEO__Table AS seo
ON seo.ElementId = n.Id
AND seo.ElementCat = 1
WHERE n.lft BETWEEN p.lft AND n.rgt
GROUP BY n.lft
ORDER BY n.lft
기본적 NestedSetsTable는 열 이드, 이름, LFT, RGT하고서야 테이블합니다 (Categorie의 ID를 포함)를 elementId로부터를 가지고 있고,이 경우에는 INT 1을 포함 ElementCat (범주에 대해, (2)는 예를 들어 제품) 것, 예를 들어 example.com/Categories/myCleanName)
이
편집 주셔서 감사합니다 깨끗한 URL의 이름을 포함 URLName의 (:. 나는이 문제를 해결하지만, 어쨌든 부탁하는 이유는 왜 n.Id가 ON 절에서 알 수 없는지를 알아 내고 싶기 때문입니다. 오 감각.
나는 긍정적 아니지만, 내가 당신 때문에이었다 생각해야 할 것입니다 ANSI 조인 스타일과 theta 스타일을 결합했습니다. 어떻게 그걸 고쳤습니까? – AgRizzo
I는이 같은 URLName의 부속 선택하여 간단히 고정 : SELECT n.Id, n.Name, COUNT (*) - AS 레벨 1을 (SEO AS SEO__Table FROM seo.URLName을 선택 WHERE seo.ElementId = N .Id AND ElementCat = 1) AS URLName FROM ... – Fitzi