![](/img/trans.png)
[英]SQL Query to get future dated records(ALL) along with current dated records
[英]SQL query selects all records of support tickets along with their files
我在数据库中有 2 个表,其中一个用于支持工单,另一个表用于工单的上传文件,我的问题是我如何 select 所有工单及其上传的文件,即使是没有的工单一份文件。
我的 SQL 查询如下,但它显示有文件的票证,不显示没有文件的票证。
SELECT
dbo.tblTickets.id, dbo.tblTickets.uid,
dbo.tblTicketReplys.tsenderusername,
dbo.tblTicketReplys.tBody, dbo.tblTicketReplys.tdate,
dbo.tblTicketReplysAttachments.[fileName],
dbo.tblTicketReplysAttachments.fileLink,
dbo.tblTicketReplysAttachments.fileSize
FROM
dbo.tblTickets
INNER JOIN
dbo.tblTicketReplys ON dbo.tblTickets.id = dbo.tblTicketReplys.tid
INNER JOIN
dbo.tblTicketReplysAttachments ON dbo.tblTicketReplys.id = dbo.tblTicketReplysAttachments.repID
WHERE
(dbo.tblTickets.[uid] = @uid)
AND (dbo.tblTicketReplys.tid = @tid)
ORDER BY
dbo.tblTickets.id ASC
尝试使用LEFT JOIN
SELECT
dbo.tblTickets.id, dbo.tblTickets.uid, dbo.tblTicketReplys.tsenderusername,
dbo.tblTicketReplys.tBody, dbo.tblTicketReplys.tdate, dbo.tblTicketReplysAttachments.[fileName],
dbo.tblTicketReplysAttachments.fileLink,dbo.tblTicketReplysAttachments.fileSize
FROM
dbo.tblTickets
JOIN
dbo.tblTicketReplys ON dbo.tblTickets.id = dbo.tblTicketReplys.tid
LEFT JOIN
dbo.tblTicketReplysAttachments ON dbo.tblTicketReplys.id = dbo.tblTicketReplysAttachments.repID
where (dbo.tblTickets.[uid]=@uid)AND(dbo.tblTicketReplys.tid=@tid)
order by dbo.tblTickets.id asc
您必须将 JOIN 更改为 LEFT JOIN 到 tblTicketReplysAttachments 的表:
LEFT JOIN
dbo.tblTicketReplysAttachments ON dbo.tblTicketReplys.id = dbo.tblTicketReplysAttachments.repID
FROM dbo.tblTickets T1
INNER JOIN
dbo.tblTicketReplys T2 ON dbo.tblTickets.id = dbo.tblTicketReplys.tid
INNER JOIN dbo.tblTicketReplysAttachments T3 ON dbo.tblTicketReplys.id = dbo.tblTicketReplysAttachments.repID
只有那些票会在T1.id = T2.ti
d 和T2.id = T3.repID
的地方列出,除非T2.tid = T2.id
你没有将第一张桌子加入第三张桌子。
来到只获取带有附件的票证的主要问题 如果您的 T3(保存附件数据)只有那些有附件的票证,那么由于您使用的是 INNER JOIN,您将只会获得带有附件的票证。 你可以用LEFT JOIN替换它,这会给你
1. T1 的所有行
2. 符合 T2 & T3 条件的所有行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.