MySql Нет доступа к родителю в подзапросе?

0

Я получаю сообщение об ошибке

Unknown column 'm.id' in 'on clause'

все мои таблицы имеют поле с именем id. Похоже, что это происходит в моем подзапросе. Я использую m.id в своем соединении. Так что же происходит? не должен ли я иметь доступ к этому var? как я могу получить доступ к media.id из моего подзапроса? Также есть часть and not (select 1 справа? Я пытаюсь исключить этот тег.

select m.id from media m 
join tag_name as n0 on n0.title = @a0 
    join media_tag as t0 on t0.media_id=m.id AND t0.tag_id = n0.id
where 1 
AND not (select 1 from tag_name as n1
    join media_tag as t1 on t1.media_id=m.id AND t1.tag_id = n1.id
    where n1.title = @a1) 
order by m.id desc;
Теги:
subquery

1 ответ

1
Лучший ответ

Переместите проверку t1.media_id = m.id в предложение where, и она работает (для меня, во всяком случае):

select m.id from media m 
join tag_name as n0 on n0.title = @a0 
    join media_tag as t0 on t0.media_id=m.id AND t0.tag_id = n0.id
where 1
AND not (select 1 from tag_name as n1
    join media_tag as t1 on t1.tag_id = n1.id
    where t1.media_id=m.id AND n1.title = @a1) 
order by m.id desc;
  • 0
    Это решило это! Я мог бы поклясться, синтаксис, как это действует в sqlite. Если так, то мне нравится, насколько расслаблен и прост sqlite, и надеюсь, что у меня не возникнет слишком много проблем с MySQL.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню