Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как выбрать данные только из одной таблицы? / 4 сообщений из 4, страница 1 из 1
14.06.2006, 16:51
    #33790879
DDT
DDT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать данные только из одной таблицы?
Привет.

Есть 3 таблицы:
main, doctype1, doctype2

Структура таблиц:
main:
id,
somedata,
deleted,
documentname,
document_id

doctype1 и doctype2 (упрощенно):
id,
name

Таблицы doctype1 и doctype2 имеют разные наборы полей. Так что их объеденить в одну таблицу нельзя.

Задача заключается в том, чтобы выбрать ИЛИ документ1 ИЛИ документ2, но при этом только из одной таблицы. У меня получается, что попадает документ1 с нужным id, а из второй таблицы выбираются ВСЕ записи.

Вот запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT
  m.id,
  m.somedata
FROM
  main m,
  doctype1 d1,
  doctype2 d2
WHERE
  m.deleted <> TRUE AND
  (
    m.document_id = d1.id OR
    m.document_id = d2.id
  )

Можно ли это сделать через запрос или надо писать ХП?
...
Рейтинг: 0 / 0
14.06.2006, 16:53
    #33790890
DDT
DDT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать данные только из одной таблицы?
P.S.

m.documentname равен 'doctype1' или 'doctype2', т.е. хранит соответствующее имя таблицы.
...
Рейтинг: 0 / 0
14.06.2006, 19:51
    #33791418
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать данные только из одной таблицы?
Может что-то типа:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SELECT
  m.id,
  m.somedata
FROM
  main m LEFT JOIN doctype1 d1 ON (d1.id=m.document_id) AND (m.documentname='doctype1')
         LEFT JOIN doctype2 d2 ON (d2.id=m.document_id) AND (m.documentname='doctype2')
WHERE
  m.deleted <> TRUE AND
  ((d1.id IS NOT NULL ) or (d2.id IS NOT NULL))
поможет
...
Рейтинг: 0 / 0
15.06.2006, 08:36
    #33791790
DDT
DDT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как выбрать данные только из одной таблицы?
Здорово! Спасибо.

Что-то я не предавал значения JOIN'у :)
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как выбрать данные только из одной таблицы? / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]