【发布时间】:2016-10-18 07:59:40
【问题描述】:
使用Mysql和Php时,
我总是做单个查询,然后使用 foreach 循环从 mysql 数据库构建一个结果数组。我想知道的是如何用 mysql 来代替。
我的问题很简单,但我不知道该怎么做。
基本上 id 喜欢加入 2 个或更多表并最终得到这样的结果:
['匹配表 1'][0,1,2,3,4]
其中表 1 是主表,0,1,2,3,4 是连接的结果。 目前,我在进行连接时不断得到这种格式的结果
['table1'][0]
['table1'][1]
['table1'][2]
基本上发生的事情是我有 2 张桌子, 酒店和客房。当我加入他们时,我得到了相同的酒店名称和 1 个房间, 我的下一个结果是与下一个房间完全相同的酒店名称......
id 就像每个酒店返回 1 个结果,所有房间都打包到数组中。我从来不明白如何只用一个 mysql 查询来实现这一点。
附言。我读过本科(但 sql 一直是我的弱点) 我现在正在考虑在 12 月的休息时间做一个简短的 sql 在线复习课程。因此,如果您愿意参与并指出我的一个好的 ID,不胜感激。
谢谢!
【问题讨论】:
-
要么使用
RIGHT JOIN,要么切换表格,以便将酒店与房间相匹配。我对 SQL 没有那么深入,但在这种情况下,最好在酒店上执行一个 foreach 循环并检索房间。除非有非常具体的理由不这样做。 -
好的,所以我尝试了这样的右连接: SELECT * FROM vendor v RIGHT JOIN accomodation_room ar ON v.id=ar.vendor_id 但我最终还是会在同一家酒店返回多个结果,即: ['hotel1']['room1'] 然后 ['hotel1']['room2'] 而不是 ['hotel1'][0,1,2,3,4]