簡體   English   中英

在一行中具有多個相同列的聯接查詢

[英]Join query with multiple same column in one row

我要做這個
圖片1

這是我的查詢

SELECT 
    modules.nama_module,
    seats.from_seat,
    seats.until_seat,
    seats.available,
    seats.id_seat
FROM `modules`
RIGHT JOIN `seats` ON modules.id_module = seats.id_module
WHERE seats.id_day=1 OR seats.id_day=2

我該怎么做?

影像輸出

嘗試這個。 請注意,我創建了兩列,一列列出了逗號分隔的seat_id,另一列顯示了座位數。 座位數就是創建屏幕快照中顯示的視圖所需的全部,但是我保留seat_ids的輸出類似於您的建議:

SELECT 
    modules.nama_module,
    seats.from_seat,
    seats.until_seat,
    seats.available,
    GROUP_CONCAT(seats.id_seat) as seat_ids,
    COUNT(seats.id_seats) as seats_count
FROM `modules`
RIGHT JOIN `seats` ON modules.id_module = seats.id_module
WHERE seats.id_day=1 OR seats.id_day=2
GROUP BY modules.nama_module, seats.from_seat, seats.until_seat

為每個新的seat_id創建新列都有其自身的問題。 創建列名,笨拙的查詢等。

[編輯:]剛剛將nama_module列添加到GROUP BY,因為我意識到不同服務的時間可能會重疊(是嗎?)

您的查詢中缺少分組依據和總和

SELECT 
    modules.nama_module,
    seats.from_seat,
    seats.until_seat,
    seats.available,
    seats.id_seat,
    sum(seats.id_seat) as nb_seat_available
FROM `modules`
RIGHT JOIN `seats` ON modules.id_module = seats.id_module
WHERE seats.id_day=1 OR seats.id_day=2
GROUP BY seats.from_seat

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM