![](/img/trans.png)
[英]Showing columns of different attributes from the same table in SQL Server
[英]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.