В моей базе данных есть четыре типа лиц, youngOrc
, oldOrc
, youngHuman
, oldHuman
.MySQL query inested where condition
Лицо принадлежит к типу, относящемуся к диапазону дат. Таким образом, у меня есть таблицы, как это для каждого типа:
youngOrcList ------------------- individual_id, start_date, end_date
Это означает, что парень с individual_id
является youngOrc
между дате начала и окончания. Он может быть чем-то другим вне этого диапазона. Аналогично, у меня есть таблица youngHuman
.
Теперь, реальная таблица процентов, что я хочу, чтобы фильтровать это событие:
events ------------------ source_individual_id target_individual_id event_date
Таблица события записывает все события между двумя людьми, в моей области. Я хочу фильтровать, чтобы выбрать events
между youngOrc
и youngHuman
.
Так что это «вложенное» состояние рода, где мне нужны и events.source_individual_id IN youngOrcList
И events.event_date BETWEEN youngOrcList.start_date AND youngOrcList.end_date
. Как это сделать?
(Кроме того, любое предложение относительно лучшего названия было бы здорово. Я даже не знаю, что эффективно назвать это и, следовательно, не в состоянии Google.)
Что вы пытались до сих пор? Также это поможет, если вы предоставите образцы данных и ожидаемые результаты. – Bulat
Похоже, у вас плохая схема. Для меня нет причин иметь 4 разделительных элемента для них для классов людей. Почему не только одна таблица со всеми людьми. Старый/молодой действительно просто свойство личности (и я предполагаю, что может измениться с течением времени - так что вы собираетесь перемещать людей из одной таблицы в другую, поскольку они стареют в вашей текущей схеме?). Также человеческий против орка можно рассматривать как свойство личности. Почему не просто люди и события, которые относятся к людям? –
Юношеские объекты - это таблицы, которые я создаю для облегчения запроса. В реальной схеме есть таблица, которая отображает индивидов на их типы, зависящие от диапазона дат, как вы сказали. Будет ли использование этой таблицы проще для меня? – Heisenberg