내가 뭘 하려는지는 sub.blockid=id
과 JOIN입니다. 하위 쿼리에서 blockid
의 이름을 id
으로 변경했지만 USING 키워드는 서브 스크립 션 테이블에서 이름이 바뀐 id
열 (blockid) 대신에 여전히 id
열을 연결합니다.Mysql 이름 바꾸기 열
$subscribequery = "JOIN (SELECT id as subid, blockid as id from subscribe WHERE userid='1') AS sub
USING (id)";
이 ON
와 쉬운 것입니다하지만 난 다른 사용하여 하위 쿼리 가입해야합니다. 다른 서브 쿼리와 함께 USING
대신 ON
을 사용하려고하면 열이 모호한 오류가 발생합니다.
동일한 검색어에 USING
과 ON
을 모두 사용할 수 있습니까? 위에서 시도한 것처럼 열의 이름을 바꿀 수 있습니까?
다음은 전체 쿼리입니다. 범인은 두 번째 JOIN 쿼리입니다.
SELECT * FROM products
JOIN (SELECT nid, sid, name AS max_name from products WHERE guideline='1' group by nid, sid) AS at1
USING (nid, sid)
JOIN (SELECT id as subid, blockid as id from subscribe WHERE userid='1') AS sub
USING (id)
WHERE id = subid AND name = max_name AND pending='0' AND deleted='0'
ORDER BY subid DESC, nid DESC;