2013-04-16 2 views
0

У меня есть таблица, которая содержит различные элементы спискаВыберите из той же таблицы и отображения в строках

*LIST_ITEMS* 
ID 
LIST_ID_FK 
DESCRIPTION 
VALUE_ID_FK 

Мне нужно, чтобы выбрать все описания, где в LIST_ID_FK'S, которые равны 1 и все ОПИСАНИЯ где LIST_ID_FK = 2, и все ОПИСАНИЕ'S, где LIST_ID_FK = 3

LIST_ID_FK value 1's have no VALUE_ID_FK 
LIST_ID_FK value 2's have the FK of value 1 in the VALUE_ID_FK column 
LIST_ID_FK value 3's have the FK of value 2 in the VALUE_ID_FK column 

выходной сигнал должен быть таким:

List1 List2  List3 
England Liverpool test3 
England London  test1 
England London  test2 
England London  test3 

Проблема, которую я получаю, заключается в том, чтобы вытащить все из одной таблицы и связать друг с другом, чтобы составить строки. Можно ли это сделать?

+0

Я немного озадачил это, но описание проблемы неясно. Что общего у «Англии, Ливерпуля и теста3»? Возможно, если вы укажете входные данные, которые будут использоваться для вывода выведенного вами вывода, возможно, будет возможно вывести их отношения. –

ответ

0

Вы можете сцепить list_ID_FK испытанию слова

SELECT Description, 'test' || list_ID_FK List3 
FROM mytable 
WHERE list_ID_FK IN (1,2,3) 

Или вы можете использовать UNION. Первый вариант почти определенно быстрее

SELECT Description, test1 List3 
FROM mytable 
WHERE list_ID_FK = 1 
UNION 
SELECT Description, test2 List3 
FROM mytable 
WHERE list_ID_FK = 2 
UNION 
SELECT Description, test3 List3 
FROM mytable 
WHERE list_ID_FK = 3 
Смежные вопросы