gpt4 book ai didi

php - 带有连接和计数的 mySQL 查询

转载 作者:行者123 更新时间:2023-12-01 00:11:32 25 4
gpt4 key购买 nike

我有一个 sql 数据库并使用 php 访问它。

我的表格看起来像:

Flights Table Flight ID, Time, Airport

座位表航类号、座位号

我有以下查询:

SELECT f.FlightID 'ID', Count(*) 'Seats Booked' FROM flights f, seats s  GROUP BY f.FlightID

我希望输出是

Flight ID Seats Booked

ID Num seats book

目前的问题是它显示了这个:

[{"ID":"0","Seats Booked":"37"},{"ID":"1234","Seats Booked":"37"}] (The output is JSON encoded)

如果你跟着我,应该什么时候像 10 和 27?似乎连接不正确。

请解释我做错了什么而不仅仅是一个答案。

谢谢!

最佳答案

LMC,

您没有使用该子句进行连接。这就是为什么你得到每条分组指令的总和。

使用你的语法的正确指令应该是这样的:

SELECT f.FlightID 'ID', Count(*) 'Seats Booked' 
FROM flights f, seats s
where s.FlightId = f.FlightId
GROUP BY f.FlightID

使用内部连接语法应该是这样的:

SELECT f.FlightID 'ID', Count(*) 'Seats Booked' 
FROM flights f
inner join seats s
on s.FlightId = f.FlightId
GROUP BY f.FlightID

你可以在不使用飞行表的情况下做某事。航类表没有任何区别,因为您要返回一组航类号。 table 座位有飞行器。下面的语句应该足够了。如果您不担心没有预订座位的航类,这是真的

SELECT s.FlightID 'ID', Count(*) 'Seats Booked' 
FROM seats s
GROUP BY s.FlightID

如果你想显示没有预订座位的航类,那么你应该使用 left join to flights。下面的语句将解决这个问题。

SELECT f.FlightID 'ID', Count(*) 'Seats Booked' 
FROM flights f
left join seats s
on s.FlightId = f.FlightId
GROUP BY f.FlightID

关于php - 带有连接和计数的 mySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16199012/

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