繁体   English   中英

用空行合并来自不同 SQL 服务器表的 2 列

[英]Merge 2 columns from different SQL server table with empty lines

我有这个查询来实现我的目标:

SELECT 
    Datum, LeavetypeID 
FROM 
    Kalender 
INNER JOIN 
    VerlofLijn ON Kalender.ID = VerlofLijn.DagID 
WHERE 
    VerlofLijn.Persnummer = @pnummer;

所以基本上我在Kalender表中有一个日历。

每天都有一个唯一的 id( Kalender.ID )。 在第二个表( VerlofLijn )匹配Kalender.ID存储在VerlofLijn.DagID ,与一起leavetype和独特的雇员编号Persnummer

我想要实现的是从日历中加载所有日期的查询,并且 - 如果当前登录的员工已在数据库中休假 - 将其显示在正确的日期旁边。

因此,如果该员工的数据库中根本没有休假,我仍然需要显示日历,以便在下一步中他可以将休假添加到他的个人日历中。

我可以为每个员工创建一个个人日历,但必须有更好的方法,没有在数据库中存储大量数据的开销,这将使查询花费更多的时间来搜索和完成。

请试试这个查询

SELECT 
    Datum, LeavetypeID 
FROM 
    Kalender 
LEFT JOIN 
    VerlofLijn 
ON Kalender.ID = VerlofLijn.DagID AND VerlofLijn.Persnummer = @pnummer;

说明:如你所说

我想要实现的是一个从日历中加载所有日期的查询

你应该使用Kalender LEFT JOIN VerlofLijn

你试过这样的 LEFT OUTER JOIN 吗?

SELECT 
    Datum, LeavetypeID 
FROM 
    Kalender 
LEFT OUTER JOIN
   VerlofLijn ON Kalender.ID = VerlofLijn.DagID 
WHERE 
   VerlofLijn.Persnummer = @pnummer;

即使表 VerlofLijn 中没有匹配项,您也可以从 Kalendar 获取所有值,以及从 VerlofLijn 获取所有公共值。

你可以在这里找到一些例子: “INNER JOIN”和“OUTER JOIN”有什么区别?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM