문제

이 쿼리가 있습니다.

(SELECT e.IdEvent,e.EventName,e.EventSubtitle,e.EventDescription,l.LocationName,e.EventVenue,EventStartDate,e.EventEndDate,e.EventHost,c.CategoryName,l.LocationCity,l.LocationState,e.isTBA,
(SELECT s.status FROM jos_rsevents_subscriptions s WHERE s.IdUser = 72 AND s.IdEvent = e.IdEvent LIMIT 1) as status 
FROM jos_rsevents_events e 
    LEFT JOIN jos_rsevents_locations l ON e.IdLocation=l.IdLocation 
    LEFT JOIN jos_rsevents_categories c ON e.IdCategory=c.IdCategory 
WHERE 1=1  AND status < 3 ) ORDER BY  EventStartDate

그러나 나는 오류를 얻는다. "where 조항 '에서"알 수없는 열'상태 '

이것을 어떻게 고칠 수 있습니까?

도움이 되었습니까?

해결책

사용해보십시오 HAVING 대신, 하위 퀘스트가 실행 된 후에 적용되므로 : 예 :

(SELECT e.IdEvent,e.EventName,e.EventSubtitle,e.EventDescription,l.LocationName,e.EventVenue,EventStartDate,e.EventEndDate,e.EventHost,c.CategoryName,l.LocationCity,l.LocationState,e.isTBA,
(SELECT s.status FROM jos_rsevents_subscriptions s WHERE s.IdUser = 72 AND s.IdEvent = e.IdEvent LIMIT 1) as status 
FROM jos_rsevents_events e 
    LEFT JOIN jos_rsevents_locations l ON e.IdLocation=l.IdLocation 
    LEFT JOIN jos_rsevents_categories c ON e.IdCategory=c.IdCategory 
HAVING status < 3 ) ORDER BY  EventStartDate

다른 팁

경우 테이블 jos_rsevents_subscriptions 기본 키가 있으므로 다음을 수행 할 수도 있습니다.

 SELECT e.IdEvent, e.EventName, e.EventSubtitle, e.EventDescription, 
     l.LocationName, e.EventVenue, EventStartDate, e.EventEndDate, 
     e.EventHost, c.CategoryName, l.LocationCity, l.LocationState, e.isTBA, 
     s.status     
 FROM jos_rsevents_events e     
    LEFT JOIN jos_rsevents_locations l 
       ON e.IdLocation=l.IdLocation     
    LEFT JOIN jos_rsevents_categories c 
       ON e.IdCategory=c.IdCategory 
    Left Join jos_rsevents_subscriptions s 
       On s.PK = (Select Max(PK) From jos_rsevents_subscriptions
                  Where IdUser = 72 
                     AND IdEvent = e.IdEvent)
 WHERE 1=1 AND status < 3  
 ORDER BY EventStartDate

추신 왜 1 = 1 ??

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top