[英]Basic SQL query question
我有以下查詢:
SELECT
Base.ReportDate,
Base.PropertyCode,
Base.FirstName,
Base.MiddleName,
Base.LastName,
Person.FirstName,
Person.MiddleName,
Person.LastName
FROM LeaseT INNER JOIN
Base ON LeaseT.LeaseID = Base.LeaseID INNER JOIN
Person ON LeaseT.TenantID = Person.ID
工作正常,除了在“人”表中對於基表中的每條記錄可以有0到“ N”個人,但我只想為每條“基”記錄返回恰好1(無關緊要,但是一個具有最低Person.ID的人)是一個合理的選擇。 如果人員表中有0行,我仍然需要返回該行,但“人員”字段的值為空。
我將如何構造SQL來做到這一點?
謝謝。
編輯:是的,表的結構可能不正確,但是此時無法進行重組-必須使用其中的內容。
以下內容可能對您有幫助
SELECT
Base.ReportDate,
Base.PropertyCode,
Base.FirstName,
Base.MiddleName,
Base.LastName,
d.FirstName, ou
d.MiddleName,
d.LastName
FROM LeaseT INNER JOIN
Base ON LeaseT.LeaseID = Base.LeaseID INNER JOIN
left outer join
(select min(personid) as ID from person group by personid) as d
on
LeaseT.TenantID = d.ID
left outer join
(select FirstName,
MiddleName,
LastName from person) d1
on
LeaseT.TenantID = d1.ID
這樣行嗎?
SELECT
Base.ReportDate,
Base.PropertyCode,
Base.FirstName,
Base.MiddleName,
Base.LastName,
Person.FirstName,
Person.MiddleName,
Person.LastName
FROM Base
LEFT JOIN (
SELECT LeaseID, MIN(TenantID) AS [TenantID]
FROM LeaseT
GROUP BY LeaseID) AS [LeaseT_SinglePerson] ON Base.LeaseID = [LeaseT_SinglePerson].LeaseID
LEFT JOIN Person ON [LeaseT_SinglePerson].TenantID = Person.ID
使用左聯接
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.