gpt4 book ai didi

MYSQL 代码在显示上创建重复行

转载 作者:行者123 更新时间:2023-11-30 00:05:37 25 4
gpt4 key购买 nike

嗨,我正在 MYSQL 中编写一些代码。我正在尝试让代码正常工作。答案是正确的,但它显示的列完全错误。任何建议或方向都会很棒。我看过类似的帖子,但这些似乎是关于插入数据库的。这是为了从 mysql 本身内部显示。

我的代码 ---

SELECT 
b.booking_id AS Booking,
b.hotel_no AS Hotel,
b.dateFrom AS Arrive,
b.dateTo AS Departing,
r.price AS Cost,
DATEDIFF(`dateTo`,`dateFrom`)-1 AS Duration,
DATEDIFF(`dateTo`,`dateFrom`) * r.price - r.price AS 'Total Cost'
FROM BOOKING AS b
LEFT JOIN
ROOM AS r ON b.hotel_no = r.hotel_code
WHERE b.hotel_no = 2;


Database 'Booking'

booking_id guest_no dateFrom dateTo room_no hotel_no
1 1 2014-06-30 2014-07-03 1 1
2 2 2014-06-30 2014-07-07 1 2
3 3 2014-06-30 2014-07-02 2 2

Database 'Room'

room_id room hotel_no type price
1 1 1 Twin Share 185
2 2 1 Deluxe 330
3 1 2 Deluxe 250
4 2 2 Penthouse Suite 500

Answer from Mysql.

Booking Hotel Arrive Departing Cost Duration Total Cost
2 2 2014-06-30 2014-07-07 250 6 1500
3 2 2014-06-30 2014-07-02 250 1 250
2 2 2014-06-30 2014-07-07 500 6 3000
3 2 2014-06-30 2014-07-02 500 1 500

正如您所看到的,我遇到的问题是它在总成本等方面产生了正确的结果。但它重复了“到达 - 出发”部分。什么建议可以帮助解决这个问题?

谢谢

格雷格

最佳答案

将此添加到您的查询中:

AND b.room_no = r.room_id 

在你的 JOIN 语句中,所以:

LEFT JOIN 
ROOM AS r ON b.hotel_no = r.hotel_code
AND b.room_no = r.room_id

连接将每个房间与每个房间进行匹配 (2x2),因​​此您会看到 4 个结果。摇一摇。

关于MYSQL 代码在显示上创建重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24582631/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com