Области SQL JOIN Неизвестный столбец - PullRequest
0 голосов
/ 03 мая 2018

У меня стек с запросом, которого я не смог выполнить, и не могу решить проблему,

SELECT * FROM sites AS s
 INNER JOIN sites_authors AS s_aut ON s_aut.site_id = s.site_id
 INNER JOIN authors AS aut ON aut.author_id = s_aut.author_id
 INNER JOIN author_trans AS trans ON trans.lang_iso = aut.lang_iso

 LEFT JOIN (
  countries_authors AS c_aut
INNER JOIN zones AS z ON z.zone_id = c_aut.zone_id
    AND z.code = aut.code
INNER JOIN carriers_zones AS cz ON cz.zone_id = z.zone_id
    AND cz.site_id = s.site_id
INNER JOIN carriers AS cr ON cr.carrier_id = cz.carrier_id
    AND cr.active = 1
 )
 ON c_aut.lang_iso = trans.lang_iso

Я получаю сообщение об ошибке: Неизвестный столбец 'aut.code' в 'предложении'

, а также Неизвестный столбец 's.site_id' в 'предложении'

Но при замене этих столбцов конкретными значениями ошибки не возникает.

это запрос в проекте php - mysql

1 Ответ

0 голосов
/ 03 мая 2018
You can use like this

SELECT * FROM sites AS s
 INNER JOIN sites_authors AS s_aut ON s_aut.site_id = s.site_id
 INNER JOIN authors AS aut ON aut.author_id = s_aut.author_id
 INNER JOIN author_trans AS trans ON trans.lang_iso = aut.lang_iso
 LEFT JOIN (
    SELECT * FROM countries_authors AS c_aut
    INNER JOIN zones AS z ON z.zone_id = c_aut.zone_id
    INNER JOIN carriers_zones AS cz ON cz.zone_id = z.zone_id
    INNER JOIN carriers AS cr ON cr.carrier_id = cz.carrier_id
    AND cr.active = 1
 ) t
 ON t.lang_iso = trans.lang_iso  AND t.code = aut.code  AND t.site_id = s.site_id;
...