我有下面提到的這兩個非規范化表,沒有任何資料約束。Records_audit 不會有重復的基于 audit_id 的行,盡管表沒有任何約束。
我將需要 SQL 查詢以使用兩個表中的 AuditID 匹配條件從第二個表中提取帶有附加匹配列 refgroup_Name 的 records_audit 的所有欄位,printedCount 大于 1 并且 R_status 為“Y”。我嘗試使用左連接,但它正在選擇所有記錄。
你能幫忙糾正我的查詢嗎?我嘗試了以下查詢,但它從第二個表中選擇了所有不需要的:
SELECT a.*, d.refgroup_Name
from Records_audit a
left join Patients_audit d ON ( (a.AUDITID=d.AUDITID )
and (a.printedCount> 1)
AND (a.R_status='Y')
)
ORDER BY 3 DESC
記錄審計:
| 審計ID | 記錄ID | created_d_t | 患者 ID | 分支 ID | R_status | 列印計數 |
|---|---|---|---|---|---|---|
| 1 | img77862 | 2020-02-01 08:40:12.614 | xq123 | 伊索96 | 是 | 2 |
| 2 | img87962 | 2021-02-01 08:40:12.614 | xy123 | 伊索96 | 是 | 1 |
患者審核:
| 審計ID | 部門名稱 | 訪問_d_t | 患者 ID | 分支 ID | emp_No | refgroup_Name |
|---|---|---|---|---|---|---|
| 1 | 成像 | 2020-02-01 11:41:12.614 | xq123 | 伊索96 | 976581 | 芬尼鎮 |
| 1 | 電子病歷 | 2020-02-01 12:42:12.614 | xq123 | 伊索96 | 976581 | 芬尼鎮 |
| 2 | 成像 | 2021-02-01 12:40:12.614 | xy123 | himpo77 | 976581 | 喬治敦 |
| 2 | 前臺 | 2021-02-01 13:41:12.614 | xy123 | himpo77 | 976581 | 喬治敦 |
| 2 | 電子病歷 | 2021-02-01 14:42:12.614 | xy123 | himpo77 | 976581 | 喬治敦 |
uj5u.com熱心網友回復:
Aleft join會給你“左”表中的所有記錄,即該from表。由于您沒有where約束查詢的子句,您將在Records_audit.
有關連接的更多資訊,請參閱SQL 連接的可視化表示。
如果您的意圖是獲取所有Records_audit具有 R_statusY和 a 的記錄printedCount > 1,請將它們放入where子句中。
select ra.*, pa.refgroup_name
from records_audit ra
left join patients_audit pa on ra.auditId = pa.auditId
where ra.printedCount > 1
and ra.r_status = 'Y'
order by ra.created_d_t desc
Records_audit這將匹配與where子句匹配的所有記錄。left join即使它們沒有匹配的記錄,也可以確保它們匹配Patients_audit。
其他注意事項:
- 您
order by 3依賴于在 中宣告列的順序Records_audit。如果您的意思是通過records_audit.created_d_twrite訂購order by a.created_d_t。 - 如果您的查詢正在對資料進行假設,請添加一個約束以確保它是真實的并保持真實。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/427751.html
