Псевдонимы столбцов, определенные в предложении th SELECT
, нельзя использовать в условиях соединения. Это связано с тем, что предложение FROM
оценивается перед предложением SELECT
.
Если я следил за вами правильно, вы, вероятно, захотите:
SELECT t1.*, IFNULL(t2.profile_id, t3.profile_id) AS `profile_id`
FROM table1 AS t1
LEFT JOIN table2 AS t2
ON t1.id = t2.some_coulm
LEFT JOIN table3 AS t3
ON t1.id = t3.some_coulm
LEFT JOIN table4 AS t4
ON IFNULL(t2.profile_id, t3.profile_id) = t4.some_column