Как использовать значение из основного запроса в подзапросе (MariaDB)

Вы можете указать флаги компоновщика в target_link_libraries .

0
задан User8371 28 February 2019 в 11:05
поделиться

1 ответ

"из таблицы @events_tag" - Вы имеете в виду, что имя таблицы является переменной? Это невозможно сделать без создания запроса ни в коде приложения, ни в хранимой подпрограмме. Последний будет использовать CONCAT, PREPARE и EXECUTE.

Предложение ON должно указывать, как связаны две таблицы. Не включайте условия фильтрации.

Итак, измените

FROM sessions a_s
LEFT JOIN events_tag_rel a_etr ON a_etr.tag_id = et.id
WHERE a_s.event_id = a_etr.event_id AND a_s.date_start >= NOW()

на

FROM sessions AS s
LEFT JOIN events_tag_rel AS etr  ON s.event_id = etr.event_id
WHERE  etr.tag_id = et.id
  AND  s.date_start >= NOW()

Более того, LEFT, вероятно, бесполезен в этом контексте.

Список выбора не имеет значения в EXISTS:

EXISTS ( SELECT id FROM ... )

->

EXISTS ( SELECT 1 FROM ... )

Индексы, которые могут быть полезны:

etr:  INDEX(tag_id, event_id)     -- in either order
s:    INDEX(date_start, event_id)
s:    INDEX(event_id, date_start)
0
ответ дан Rick James 28 February 2019 в 11:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: