sql - SQL 查询选择支持票证的所有记录及其文件
问题描述
我在数据库中有 2 个表,其中一个用于支持工单,另一个表用于工单的上传文件,我的问题是如何选择所有工单及其上传的文件,即使是没有工单的工单一份文件。
我的 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
推荐阅读
- java - 如何在 Spring Boot 中更新 @ManyToMany 映射?
- android - 在 Android Studio 中将目录模块转换为库模块
- flutter - 如何在 Flutter web 中将录制的音频 Uri/Url 转换为 .Mp3 扩展名的文件
- sql - 是否可以获取我的 PostgreSQL 数据库服务器中所有数据库的数据库名称和大小?
- php - 无法在结束标签和开始标签之间匹配新行
- python - PyQt4 在第二个 QComboBox 中显示相关值
- macos - 我需要使用默认写入禁用 Safari 中的跨源限制
- computer-science - CFG 问题(最短字符串、派生树等)
- powershell - 在单引号中使用变量
- javascript - 如何在 WooCommerce 结账时自动注册访客用户?