Мне нужно выбрать минимум набора дат в двух таблицах, и мой SQL настолько ржавый, что я не могу думать ...
У меня есть таблица с некоторыми бизнес-объектами:
create table FOO (
FOO_ID number(19, 0) not null,
BAR varchar2(255),
primary key (FOO_ID)
);
Для этого бизнес-объекта есть ноль или много дат:
create table A_DATES (
FOO_ID number(19, 0) not null,
A_DATE date not null,
primary key (FOO_ID , A_DATE)
);
И есть другой набор дат ноль или много для того же бизнес-объекта:
create table B_DATES (
FOO_ID number(19, 0) not null,
B_DATE date not null,
primary key (FOO_ID , B_DATE)
);
Таблица FOO содержит:
+------+--------+
|FOO_ID|A_STRING|
+------+--------+
|1 |aaa |
|2 |bbb |
|3 |ccc |
+------+--------+
Таблица A_DATES содержит:
+------+-----------+
|FOO_ID|A_DATE |
+------+-----------+
|1 |01-Jan-2001|
|1 |01-Jan-2002|
|2 |01-Jan-2003|
|2 |01-Jan-2004|
+------+-----------+
Таблица B_DATES содержит:
+------+-----------+
|FOO_ID|B_DATE |
+------+-----------+
|1 |01-Jan-2003|
|1 |01-Jan-2004|
|2 |01-Jan-2001|
|2 |01-Jan-2002|
+------+-----------+
Мне нужнонаписать один выбор (, чтобы не было временных таблиц и т. д. ), который выбирает минимум каждого из наборов дат, если таковые имеются, для каждого FOO.Набор результатов должен выглядеть следующим образом:
+------+--------+-----------+
|FOO_ID|A_STRING|MY_DATE |
+------+--------+-----------+
|1 |aaa |01-Jan-2001|
|2 |bbb |01-Jan-2001|
|3 |ccc |<null> |
+------+--------+-----------+