Есть два класса сущностей, хочу выбрать объекты из их таблиц одним запросом:
SELECT d, e
FROM OrganizerBundle:DailyTask d, OrganizerBundle:Event e
WHERE d.weekday = 'all' OR DATE_FORMAT(e.date,'%Y-%m-%d') = :date
Как видно, я хочу выбрать DailyTask, у которых weekday = 'all' и Event, у которых date = :date . Проблема - условие WHERE работает только для первой таблицы, а из второй выбираются все элементы.
Как прописать так, чтобы условия были отдельными для двух таблиц? UNION не предлагать - Doctrine не поддерживает.
Вот запрос SQL, который генерируется в результате:
ELECT d0_.weekday AS weekday_0, d0_.time AS time_1, d0_.length AS length_2, d0_.id AS id_3, d0_.name AS name_4, d0_.description AS description_5, e1_.date AS date_6, e1_.length AS length_7, e1_.id AS id_8, e1_.name AS name_9, e1_.description AS description_10 FROM daily d0_, events e1_ WHERE (d0_.weekday = 'all') OR (DATE_FORMAT(e1_.date,'%Y-%m-%d') = '2017-07-08')
Что-то я не вспомню, как и в MySQL без использования UNION такой трюк провернуть.