我需要编写一个查询,以下列格式返回数据库中的元素。 之前,重要的是要说我有一个选项卡,其中有一个文件夹列表,而在另一个选项卡中有一个对象列表。并非每个文件夹都有一个对象。 我的目标是返回这种信息:
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 :(得分: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