這裏是架構:SQL查詢來獲取客戶提供超過一票
tblCustomers{custid,fname,lname,email}
tblTicket{ticketId,custid,numOfPassengers,dateofJourney,totafare,trainId}
問題查詢是:顯示所有誰已預訂超過一票的顧客。我正在使用Oracle 9.兩個表的custid之間都有一個外鍵。
這裏是架構:SQL查詢來獲取客戶提供超過一票
tblCustomers{custid,fname,lname,email}
tblTicket{ticketId,custid,numOfPassengers,dateofJourney,totafare,trainId}
問題查詢是:顯示所有誰已預訂超過一票的顧客。我正在使用Oracle 9.兩個表的custid之間都有一個外鍵。
This?
SELECT C.custid
FROM tblCustomers C
JOIN tblTickets T
ON C.custid = T.custid
GROUP BY C.custid
HAVING COUNT(*) > 1
如果你想從tblCustomers使用這個有各個領域:
SELECT C.custid,C.fname,C.lname,C.email
FROM tblCustomers C
JOIN tblTickets T
ON C.custid = T.custid
GROUP BY C.custid,C.fname,C.lname,C.email
HAVING COUNT(*) > 1
或
SELECT
C.custid,
MAX(C.fname) as fname,
MAX(C.lname) as lname,
MAX(C.email) as email
FROM tblCustomers C
JOIN tblTickets T
ON C.custid = T.custid
GROUP BY C.custid
HAVING COUNT(*) > 1
select *
from tblCustomers
where custid in (select custid from tblTicket group by custid having count(*) > 1)
如果你只是想要客戶的身份證,那麼哈姆雷特的答案是最好的。如果你想看到客戶的詳細信息,那麼這將爲你做到這一點。 –
是的,這也只適用於它應該是嵌套查詢tblTicket而不是tblCustomers。 – Mahesha999
@ Mahesha999小細節:) –
我們是否申請加入,如果這兩個表的客戶ID都已經通過外鍵鏈接? – Mahesha999
您必須閱讀有關參照完整性。 '外鍵'告訴引擎只關於引用完整性。 –