我知道這可能是一個非常新手的問題,但我對 SQL 很陌生,所以請告訴我。
基本上,我的“個人”表包含名字和姓氏、地址、出生日期等資訊,而我的“會員”表包含特定于會員的資訊(即每月續訂費、預訂等)
MembersID 是參考 Person.ID 的外鍵。本質上,我要做的是過濾掉我的成員表,以便只顯示預訂最少和最多的成員,然后,我想將其加入到人員表中,以便他們的相應資訊(即他們的姓名、出生日期)也會顯示出來。
我可以過濾出成員表以僅顯示預訂最多和最少的成員 - 我也可以將兩個表連接在一起,以便顯示所有成員。
但我不明白如何過濾成員表 - 然后只將那些過濾后的結果加入到人員表中......我覺得我有兩個拼圖,我只是不能把它放在一起。
這就是我的意思:
select
p.FirstName,
p.LastName,
p.DateOfBirth,
p.[Address],
m.BookingsMade
from Person p
inner join Member m on p.ID = m.MemberID;
那是我加入兩個表以便顯示所有資訊,下面是我過濾掉成員表(單獨)以便只顯示最高和最低預訂:
select
m.MemberID,
m.[MonthlyFee ($)],
m.BookingsMade
from Member m
where m.BookingsMade = (select min(BookingsMade) from Member)
or m.BookingsMade = (select max(BookingsMade) from Member)
order by BookingsMade ASC;
我怎么能把它放在一起?
uj5u.com熱心網友回復:
您可以在 ON 子句中添加預加入條件,因此請嘗試以下操作:
select
p.FirstName,
p.LastName,
p.DateOfBirth,
p.[Address],
m.BookingsMade
from Person p
inner join Member m on p.ID = m.MemberID
AND (m.BookingsMade = (select min(BookingsMade) from Member)
OR or m.BookingsMade = (select max(BookingsMade) from Member))
order by BookingsMade ASC;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/468901.html
標籤:sql
下一篇:SQL-比較兩個不同表中的列值