programing

구문 오류 또는 액세스 위반: 1064, LEFT JOIN 조건의 구문 오류

abcjava 2023. 8. 14. 22:24
반응형

구문 오류 또는 액세스 위반: 1064, LEFT JOIN 조건의 구문 오류

왼쪽 조인 조건을 세 번째 테이블과 함께 사용하여 두 테이블을 조인하는 동안 오류가 발생했습니다.

여기 오류가 있습니다.

SQLSTATE[42000]:구문 오류 또는 액세스 위반: 1064 SQL 구문에 오류가 있습니다. 'ON(cnt)' 근처에서 사용할 올바른 구문은 MariaDB 서버 버전에 해당하는 설명서를 확인하십시오.PKDID = pd.PKDID)에 표시된 대로led.PKID=pkg.PKID어디에pkg.Sta' at line 3 (SQL: select count(*) as aggregate from꾸러미들aspkg left join사건들asevonev.EvnId=pkg.EvnId' left join(PD 선택).PKDID, PD님BsNaId, cnt.컨텐츠 목록, bn.nature FROM package_dets는 pd, busi_natures는 bnWHERE pd입니다.BsNaId = bn.BsNaId

왼쪽 조인(PKID, PKDID, package_detcontents GROUP FROM PKDID) cnt\n ON(cnt)입니다.PKDID = pd.PKDID)에 표시된 대로led.PKID=pkg.PKID어디에pkg.Status활성 및ev.enventNm생일)

여기 제 코드가 있습니다. 오류가 있습니다.

->leftJoin(DB::raw("(SELECT pd.PKDID, pd.BsNaId, cnt.ContentList, bn.nature FROM package_dets as pd, busi_natures as bn WHERE pd.BsNaId = bn.BsNaId 
    LEFT JOIN(SELECT PKID, PKDID, ContentList FROM package_detcontents GROUP BY PKDID)cnt
    ON(cnt.PKDID = pd.PKDID)) as led"), 
    function($join){
    $join->on("led.PKID","=","pkg.PKID");
    })

그리고 여기 완전한 코드가 있습니다.

$package = DB::table("packages as pkg")
->select(DB::raw("pkg.PKID, pkg.EvnId, pkg.PkgNm, pkg.link, pkg.cross_price, pkg.off_percent, pkg.images, pkg.price, pkg.forpeople, pkg.Minsrating, pkg.Plsrating, pkg.remark, pkg.Status, led.nature, ev.enventNm"))
      ->leftJoin("events as ev","ev.EvnId","=","pkg.EvnId")
->leftJoin(DB::raw("(SELECT pd.PKDID, pd.BsNaId, cnt.ContentList, bn.nature FROM package_dets as pd, busi_natures as bn WHERE pd.BsNaId = bn.BsNaId 
    LEFT JOIN(SELECT PKID, PKDID, ContentList FROM package_detcontents GROUP BY PKDID)cnt
    ON(cnt.PKDID = pd.PKDID)) as led"), 
    function($join){
    $join->on("led.PKID","=","pkg.PKID");
    })
->where("pkg.Status", "=", "Active")
->where("ev.enventNm", "=", $envent)
->paginate(50);

쿼리 구문에 문제가 있습니다.이것은 당신의 질문입니다.

SELECT pd.PKDID, 
   pd.BsNaId, 
   cnt.ContentList, 
   bn.nature
FROM package_dets AS pd
 INNER JOIN busi_natures AS bn ON pd.BsNaId = bn.BsNaId
 /*Above INNER JOIN can be any other JOIN as per your requirement*/
 LEFT JOIN
(
    SELECT PKID, 
           PKDID, 
           ContentList
    FROM package_detcontents
    GROUP BY PKID,PKDID,ContentList
) cnt 
ON cnt.PKDID = pd.PKDID;

언급URL : https://stackoverflow.com/questions/57667538/syntax-error-or-access-violation-1064-syntax-error-on-left-join-condition

반응형