|
|
|
| Есть несколько таблиц. В одной из них содержится искомое значение id. Можно-ли определить при помощи одного запроса, какая из таблиц содержит этот id? Можно-ли это сделать при помощи объединения таблиц? | |
|
|
|
|
|
|
|
для: beowulf
(04.10.2005 в 14:50)
| | Да, можно извлечь запись с соответствующим id при помощи объединения таблиц оператором UNION
SELECT * FROM tbl WHERE id = 1
UNION
SELECT * FROM tbl1 WHERE id = 1
|
Можно также несколько таблиц объединить в одну MERGE-таблицу, тогда запрос можно адресовать этой объединённой таблице. | |
|
|
|
|
|
|
|
для: cheops
(05.10.2005 в 00:46)
| | А можно определить из какой именно таблицы извлечена запись? | |
|
|
|
|
|
|
|
для: beowulf
(05.10.2005 в 08:54)
| | В этом случае придётся перечислить все извлекаемые поля и добавить ещё одно поле в каждый список
SELECT id, field1, field2, '1' FROM tbl WHERE id = 1
UNION
SELECT id, field1, field2, '2' FROM tbl1 WHERE id = 1
|
Т.е. если в таблицах только три поля id, field1, field2, то в результирующей таблице появится четвёртый столбец. Если запись извлечена из первой таблицы в нём будет значение '1', если из второй - '2'. | |
|
|
|