我正在使用超级不一致的Oracle数据库,我需要帮助才能进行查询。
将数据库简单化为一个示例我有这三个表。
TABLE_F
------
id = 3
title = "Hello"
TABLE_M
------
id = 3
category = "val3"
flid = 5
TABLE_X
------
id = 3
body = "How are you?"
flid = 30
id = 3
body= "Bye bye"
flid = 35
我想进行查询以获得以下结果:
id | title | mat | BODY | OTHER
------------------------------------------
3 helllo val3 How are you? Bye bye
我的查询是:
SELECT
TABLE_F.title,
TABLE_M.category,
TABLE_X.body as BODY
FROM TABLE_F
INNER JOIN TABLE_M
ON TABLE_F.id=TABLE_M.id
INNER JOIN TABLE_X
ON TABLE_F.id=TABLE_X.id
WHERE TABLE_M.flid=5 AND TABLE_X.flid=30;
我得到的地方:
id | title | mat | BODY
--------------------------------
3 helllo val3 How are you?
我需要在查询中添加TABLE_X.body as OTHER
(其中包含“ Bye bye ”字符串),但我不能这样做,因为我正在过滤{{1为了得到身体。
这不是我的数据库,我无法改变设计。我需要通过一个查询得到所需的输出(我不知道是否可能)。
提前致谢。
答案 0 :(得分:1)
使用别名
连接table_x两次SELECT_F.id,
TABLE_F.title,
TABLE_M.category mat,
TABLE_X.body BODY,
Y.body OTHER BODY,
FROM TABLE_F
INNER JOIN TABLE_M ON TABLE_F.id=TABLE_M.id
INNER JOIN TABLE_X ON TABLE_F.id=TABLE_X.id AND TABLE_X.flid=30
INNER JOIN TABLE_X Y ON TABLE_F.id=Y.id AND Y.flid=35