2011-11-20 114 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