You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP SQL内连接查询异常:无法获取关联表字段问题咨询

问题分析与解决

你的问题出在SELECT子句的字段选择上:虽然你对hotels表和locations、styles表做了内连接,但SELECT语句里只指定了hotels表的字段,完全没包含locations和styles表的关联字段,所以查询结果自然只有hotels表的信息。

修正后的代码

$stmt = $this->Connect()->prepare('SELECT
                 hotels.id,
                 hotels.name AS hotel_name,
                 hotels.stars,
                 hotels.check_in,
                 hotels.check_out,
                 hotels.location_id,
                 hotels.style_id,
                 locations.location, -- 新增locations表的location字段
                 styles.name AS style_name -- 新增styles表的name字段,用别名避免字段名冲突
                 FROM hotels
                 INNER JOIN locations ON hotels.location_id = locations.id
                 INNER JOIN styles ON hotels.style_id = styles.id
                 ;');

补充说明

  • 如果需要关联表的更多字段,直接在SELECT子句里添加即可,格式为表名.字段名,必要时用AS设置别名避免字段名重复(比如两个表都有name字段)
  • 内连接仅返回三个表中关联条件匹配的记录,如果需要保留hotels表所有记录(即使没有对应location或style),可以改用LEFT JOIN替代INNER JOIN

内容的提问来源于stack exchange,提问作者Mat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:37:31