gpt4 book ai didi

mysql - MySql "FROM"子句如何处理多个表名?

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:16 25 4
gpt4 key购买 nike

以下两个查询有什么区别:-

  1. 查询 1:SELECT ord.* FROM orders ord, order_hotels oh(返回空)
  2. 查询 2:SELECT ord.* FROM orders ord(返回所有记录)

那么,即使在“FROM”子句(查询 1)中指定多个表名,我是不是使用其他表也会影响查询结果?以及如何?

谢谢

最佳答案

你的空结果集查询是这样的,为了便于阅读而详细说明

SELECT ord.* 
FROM orders AS ord, order_hotels AS oh

这是旧式的以逗号分隔的表列表,此查询的语法

     SELECT ord.* 
FROM orders AS ord
INNER JOIN order_hotels AS oh

此查询是一个没有任何 ON 子句的 INNER JOIN,为 orders 中的每个可能的行对返回一行order_hotels.您已声明 order_hotels 不包含任何行。因此,此查询尽职尽责地返回所有可能的配对,即没有行。

如果您甚至在填充 order_hotels 表之前就尝试对这两个表做一些有趣的事情,您可以尝试这样的事情:

     SELECT ord.*, oh.hotel_name
FROM orders AS ord
LEFT JOIN order_hotels AS oh ON ord.hotel_id = oh.hotel_id

(我在猜测列名,我可能猜错了。)此 LEFT JOIN 返回一个结果集,该结果集显示 orders 中的所有行以及中的匹配行订单酒店ON 子句指定行匹配的含义。

关于mysql - MySql "FROM"子句如何处理多个表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26465412/

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