mysql中显示为空的两列记录
我把两张桌子、一本书和两个座位连在一起。但mysql客户中的两列记录显示为null,移动列显示为null 母线簿表: 座位表: 选择 seats.busno,seats.seats,seats.status, busbook.customer,busbook.mobile,seats.date 从…起 座位 左连接 座椅上的总线簿。总线号=总线簿。总线号和座椅。id=总线簿。座椅 返回的结果如下所示:mysql中显示为空的两列记录,mysql,sql,Mysql,Sql,我把两张桌子、一本书和两个座位连在一起。但mysql客户中的两列记录显示为null,移动列显示为null 母线簿表: 座位表: 选择 seats.busno,seats.seats,seats.status, busbook.customer,busbook.mobile,seats.date 从…起 座位 左连接 座椅上的总线簿。总线号=总线簿。总线号和座椅。id=总线簿。座椅 返回的结果如下所示: busno seats status customer mobile date
busno seats status customer mobile date
-----------------------------------------------------
91000 1 Booked NULL NULL 2019-12-06
91000 2 Booked NULL NULL 2019-12-06
91000 3 Booked NULL NULL 2019-12-06
91000 4 Booked NULL NULL 2019-12-06
我认为你应该这样修改你的加入条件
AND seats.seats = busbook.seat
ON条款中的条件:
...AND seats.id = busbook.seat
这可能是错误的。
也许你需要:
...AND seats.seats = busbook.seat
您的问题中的要求不是很清楚,您的问题有被否决的风险
但是为了解决你的问题。这是您最可能需要的查询
您已经使用了LEFT JOIN关键字
但是LEFT JOIN关键字返回左表table1中的所有记录,以及右表table2中的匹配记录。如果没有匹配项,则结果从右侧为NULL
您要使用的是internaljoin关键字选择两个表中具有匹配值的记录
此外,您的查询在连接条件中有多个错误。我已经纠正了,希望这能解决你的问题 AND seats.seats=busbook.seat而不是AND seats.id=busbook.seat您的问题是什么?我需要向列显示客户、移动数据这是否回答了您的问题?如果座椅和座椅应存储相同类型的数据,则它们应具有相同的名称。是座位号,还是座位数?@alberto感谢您将答案格式化,但是您没有更改答案的实际内容。我没有更改上下文,因为您所写的内容是正确的。我已经提高了代码的可读性,因此也提高了响应的可读性。如果您认为我所写的是正确的,我们将非常感谢您的支持。谢谢
...AND seats.id = busbook.seat
...AND seats.seats = busbook.seat
SELECT s.busno, s.seats, s.status,
b.customer, b.mobile, s.date
FROM seats s
INNER JOIN busbook b ON s.busno=b.busno AND s.seats = b.seats