[英]How do I display multiple columns from 3 Different tables in SQL?
我有3張桌子:
Reservation
,Trip
,Customer
我只需要顯示多次預訂的客戶的行程名稱、行程類型、客戶名字、客戶姓氏
有點像這樣
預訂表
Reservation_ID ... ... .. Customer_Num
- 16001 101
- 16002 101
- 16003 102
- 16004 103
- 16005 103
客戶表
Customer_ID ... ... .. Customer_Num
- 30 101
- 31 102
- 32 103
Customer 表的主 ID 是customer_ID
,列名是Customer_Num
。 此列名稱也在reservation
表中。
預訂表的主 ID 是Reservation_ID
我試過了:
SELECT Customer.First_Name, Customer.Last_Name, Trip.Trip_Name, Trip.Type, Reservation.Customer_Num COUNT(Reservation.Customer_Num
FROM Reservation, Customer, Trip
WHERE Reservation.Customer_Num = Customer.Customer_Num
HAVING COUNT(Reservation.Customer_Num) > 1
GROUP BY Customer.First_Name, Customer.Last_Name, Trip.Trip_Name, Trip.Type, Reservation.Customer_Num;
假設在您的 TRIP 表中,您有行程名稱、行程類型等列,您可以嘗試以下查詢 -
SELECT Customer.First_Name
,Customer.Last_Name
,Trip.Trip_Name
,Trip.Type
,Reservation.Customer_Num
,COUNT(Reservation.Customer_Num) Customer_Num_Cnt
FROM Reservation R
INNER JOIN Customer C ON Reservation.Customer_Num = Customer.Customer_Num
INNER JOIN Trip T ON R.TRIP_ID = T.TRIP_ID
GROUP BY Customer.First_Name
,Customer.Last_Name
,Trip.Trip_Name
,Trip.Type
,Reservation.Customer_Num
-- HAVING COUNT(Reservation.Customer_Num) > 1;
如果這不能滿足您的要求,請分享 TRIP 表和 CUSTOMER 表的完整結構。
試試這個,假設 Trip 表使用 Customer_num 字段作為外鍵
select A.Customer_id, A.Name, A.Last_name, B.name, B.type from Customer as A
where Customer_id in
(select Customer_Num from Reservation group by Customer_Num having count(Customer_Num) > 1)
left join Trip as B on Trip.Customer_Num = Customer.Customer_Num
您可以使用EXISTS
:
SELECT t.*, c.*
FROM reservation r INNER JOIN
customer c
ON c.Customer_Num = r.Customer_Num INNER JOIN
trip t
ON . . .
WHERE EXISTS (SELECT 1
FROM reservation r1
WHERE r1.customer_no = r.customer_no AND
r1.Reservation_ID <> r.Reservation_ID
);
您需要調整 Trip 表的ON
子句,因為您沒有指定表信息。
這將顯示制作結果,以便我可以選擇哪些名稱具有多個保留。 在預訂表中,它列出了擁有多個預訂的客戶編號,但我不確定為什么它不起作用。
選擇 CUSTOMER.FIRST_NAME、CUSTOMER.LAST_NAME、TRIP.TRIP_NAME、TRIP.TYPE、RESERVATION.CUSTOMER_NUM、COUNT(RESERVATION.CUSTOMER_NUM) CUSTOMER_NUM_CNT
從預訂
CUSTOMER.CUSTOMER_NUM = RESERVATION.CUSTOMER_NUM 內部加入客戶 RESERVATION.TRIP_ID = TRIP.TRIP_ID 內部加入旅行
GROUP BY CUSTOMER.FIRST_NAME、CUSTOMER.LAST_NAME、TRIP.TRIP_NAME、TRIP.TYPE、RESERVATION.CUSTOMER_NUM 已注釋掉--HAVING COUNT(RESERVATION.CUSTOMER_NUM) > 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.