Как выбрать отличный от нескольких столбцов - PullRequest
2 голосов
/ 12 октября 2010

Привет Я уверен, что есть запрос для такого рода операции, но я просто не могу его получить.
У меня есть такая таблица:


product_id | saved_by | deleted_by | accepted_by | published_by
-----------+----------+------------+-------------+-------------
 1         | user1    |            | user1       |
-----------+----------+------------+-------------+-------------
 2         |          | user2      |             |
-----------+----------+------------+-------------+-------------
 3         | user2    |            |             | user3
-----------+----------+------------+-------------+-------------
 4         |          |            | user1       | user4
-----------+----------+------------+-------------+-------------

И я пытаюсь создать запрос, который бы выделил всех пользователей в этих полях отчетливо, в результате чего-то вроде этого:


users
------
user1
user2
user3
user4

Есть указатели?

1 Ответ

3 голосов
/ 12 октября 2010

Первое, что приходит на ум, это ОБЪЕДИНИТЬ колонки:

  SELECT t.users
  FROM
  (
  SELECT saved_by AS users
  FROM table
  UNION 
  SELECT deleted_by
  FROM table
  UNION 
  SELECT accepted_by
  FROM table
  UNION 
  SELECT published_by
  FROM table
  ) AS t;

http://postgresql.org/docs/9.0/interactive/sql-select.html

В качестве примечания, если бы эти данные были нормализованы, было бы намного проще получить данные так, как вы хотите.

...