[英]mysql select data from result of alias name on LEFT JOIN condition
SELECT e.`event_type`,e.`event_status`,er.`event_reg_id`,er.`event_id`,'events' as category,
IF(e.`event_type`='C',e.`parent_id` ,IF(e.`event_type`='S',er.`event_id`,'') ) temp_id
FROM `event_registration` er
LEFT JOIN event e on er.`event_id`= temp_id WHERE er.`company_id`='%s' AND er.`student_id`='%S'
我將temp_id
作為別名,並將其設置為LEFT JOIN ON條件,它不起作用。 我在LEFT JOIN ON條件下給了別名而不是列名
您不能在查詢的ON
部分使用temp_id
別名。 別名在那里不可用。 但是您可以執行以下操作,將嵌套的IF
移到ON
部分:
SELECT
e.`event_type`,
e.`event_status`,
er.`event_reg_id`,
er.`event_id`,
'events' AS category,
IF(e.`event_type` = 'C', e.`parent_id`, IF(e.`event_type` = 'S', er.`event_id`,'')) AS temp_id,
FROM `event_registration` er
LEFT JOIN event e ON er.`event_id`= IF(e.`event_type` = 'C', e.`parent_id`, IF(e.`event_type` = 'S', er.`event_id`,''))
WHERE er.`company_id` = '%s' AND er.`student_id` = '%S'
您不能使用SELECT
的別名,因為FROM
部分是較早執行的( 請參見StackOverflow上的此答案 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.