MySQL的新手,在這里找不到正確的答案。
我有這些表:Passengers 和 Tickets。我需要顯示購買了5張票的乘客的所有資料,而不僅僅是ID
我已經設法做到了,但我需要乘客的所有資料。
SELECT Passenger.IdPassenger
FROM Passengers
JOIN Ticket ON Passenger.IdPassenger = Ticket.IdPassenger
GROUP BY Passenger.IdPassenger
HAVING COUNT(*) = 5;
mysql 讓我顯示乘客所有資料的唯一方法是執行 SELECT * 然后在 GROUP BY 子句中放入 EVERY 列,有沒有辦法像 group by * 一樣進行 group by ?
uj5u.com熱心網友回復:
GROUP BY派生表中的票證表,以獲取 5 張票證 ID。JOIN:
select p.*
from Passengers p
join (SELECT IdPassenger
FROM Ticket
GROUP BY IdPassenger
HAVING COUNT(*) = 5) t
ON p.IdPassenger = t.IdPassenger
uj5u.com熱心網友回復:
您可以在子查詢中使用 id 來獲取所有資料:
select *
from Passengers p
where p.IdPassenger in (select Ticket.IdPassenger
from Ticket
group by Ticket.IdPassenger
having count(*) = 5)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/345920.html
上一篇:sqlwhere子句條件未按預期作業。只需要特定的標記記錄
下一篇:逐行比較不同的df并回傳更改
