كيف يمكنني استخدام متغير من فرعي؟
سؤال
ولدي هذا الاستعلام:
(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
ولكن أحصل على خطأ. "عمود غير معروف 'الوضع' في 'حيث شرط'
وكيف يمكن إصلاح هذا؟
المحلول
وحاول استخدام 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
وP.S. لماذا 1 = 1 ؟؟
لا تنتمي إلى StackOverflow