从同一个表中选择并按行显示

时间:2013-04-16 21:16:33

标签: sql oracle join

我有一个包含各种列表项的表

*LIST_ITEMS*
 ID
 LIST_ID_FK
 DESCRIPTION
 VALUE_ID_FK

我需要选择LIST_ID_FK'S EQUAT 1的所有描述以及LIST_ID_FK = 2的所有DESCRIPTIONS以及LIST_ID_FK = 3

的所有DESCRIPTION'
 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

我遇到的问题是尝试将所有内容从同一个表中取出并相互链接以组成行。 这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以将list_ID_FK连接到单词test

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