2011-11-20 115 views
0

我需要编写一个查询以下面的格式返回数据库中的元素。 之前,重要的是说我有一个选项卡,其中有一个文件夹列表和另一个选项卡有一个对象列表。不是每个文件夹都有一个对象。 我的目标是恢复这种信息的:SQLite硬盘查询格式化结果

FOLDER_NAME OBJECT_NAME

如果该文件夹对应一个或多个对象; 或

FOLDER_NAME "NO_ELEMENTS" 

如果到文件夹不对应任何对象。

表结构:

TAB_FOLD: id_folder,FOLDER_NAME

TAB_ELEMENTS: id_folder,id_object,OBJECT_NAME

这就是我试着写:

IF ((SELECT COUNT(*) FROM TAB_OBJECT WHERE ID_FOLDER=X) > 0) 
{ 
    SELECT ID_FOLDER, ID_OBJECT, OBJECT_NAME FROM TAB_FOLD WHERE ID_FOLDER=X 
} 
ELSE 
{ 
    X, "NO_ELEMENTS" 
} 
+0

请提供表结构 – Sparky

+0

完成!我更新了帖子 – Soul

回答

0

也许就像这个?

select f.folder_name, coalesce(e.object_name, 'NO_ELEMENTS') 
from tab_fold f left join tab_elements e on f.id_folder=e.id_folder 
order by 1,2 
+0

“1,2”是什么意思?我想要在e.object_name上添加其他字段,例如“e.object_name,e.feld_1,e.field_2”......我该怎么办?谢谢 – Soul

+0

order by 1,2表示按列1先排序,然后列2 – Mikpa