[SQL] Помогите составить запрос.

noiz_music

Всем привет!
Вот не соображу как составить запрос для следующей цели.
Есть две таблицы:

table_num
(id1 int,
id2 int,
value numeric
)


table_text
(id1 int,
id2 int,
value text
)

Есть два запроса:

SELECT id1 FROM table_num WHERE id2 = <id2_num> AND value = <num_value>


SELECT id1 FROM table_text WHERE id2 = <id2_text> AND value = <text_value>

Как составить запрос, который бы возвращал пересечение множеств значений, выдаваемых этими двумя запросами, имея входными данными те же 4 значения id2_num, id2_text, num_value, text_value?
Спасибо!

kruzer25

SELECT table_num.id1 WHERE table_num.id2=id2_num AND table_num.value=num_value AND table_text.id1=table_num.id1 AND table_text.id2=id2_text AND table_text.value=text_value
?

noiz_music

Ага, спасибо.
А если поменять местами в этом запросе table_num и table_text я так понимаю ничего не изменится?
Еще вопросы есть..
1) Как взять объединение вместо пересечения?
2) Как грамотно составить индексы на эти две таблицы для такого вида запросов?

kruzer25

Да, ничего не изменитсяю.
Объединение можешь брать просто с помощью двух селектов
PS: Я не уверен, что мой запрос действительно будет работать...

krishtaf

по поводу обьединения:

твой первый запрос
union
твой торой запрос
Оставить комментарий
Имя или ник:
Комментарий: