[英]SQL - Left outer join with 2 tables and derived tables
我的情況如下:
Table Persons
- id (primary key)
- name
Table Logs
- id (primary key)
- person_id (foreign key)
- datetime
- status
現在,我想創建一個SQL查詢以進行檢索:
此查詢僅檢索具有匹配關系的名稱:
SELECT p.id, p.name, DATE_FORMAT(l.datetime,'%d-%m-%Y %H:%i:%s') AS datetime, l.status
FROM Persons p LEFT OUTER JOIN Logs l
ON p.id = l.person_id
WHERE l.id IN (SELECT id from Logs T1
INNER JOIN (SELECT MAX(id) AS Max_id FROM Logs
GROUP BY person_id
) T2
ON T1.id = T2.Max_id)
ORDER BY l.status, p.name";
如何獲取與表Logs無關的名稱?
您可以使用LEFT JOIN:
SELECT p.name
FROM Persons p
LEFT JOIN Logs l ON p.id = l.person_id
WHERE l.id IS NULL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.