加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将多个mysql查询组合成一个结果

发布时间:2020-12-13 21:52:58 所属栏目:PHP教程 来源:网络整理
导读:我正在使用php从 mysql表获取结果.我想运行多个条件语句来返回唯一结果列表.假设我在街上有一张关于房屋的桌子,我的桌子看起来像这样: House Number | Attribute | Value-------------------------------23 | Colour | White23 | Stories | 224 | Stories |
我正在使用php从 mysql表获取结果.我想运行多个条件语句来返回唯一结果列表.假设我在街上有一张关于房屋的桌子,我的桌子看起来像这样:

House Number | Attribute | Value
-------------------------------
23           | Colour    | White
23           | Stories   | 2
24           | Stories   | 1
25           | Colour    | Blue

请注意房屋号码23出现两次我怎么说一个mysql查询返回所有白色的房子并且有两个故事?在这种情况下,它只会返回一个结果 – 23.

我听到你在说什么 – 为什么我不把列名作为’颜色’和’故事’.好吧,原因是因为在我的例子中,房子可以有两种不同的颜色:同一属性名称的两个不同的值.房子可以有两行,一个属性是颜色,值是白色,另一个属性也是颜色,但值是紫色.只要房子有一排颜色:白色和一排有故事:2它将在查询中返回正数并包含在结果中

现在,一旦解决方案将运行两个不同的查询:一个查询匹配白宫并返回一个数组,第二个查询匹配带有两个故事的房子并返回一个数组,然后我可以使用PHP来比较两个数组,看看哪些条目出现在两个数组中,将它们拉出并将它们放入最终数组中.但这涉及调用两个mysql查询.有没有办法在mysql端组合查询?

解决方法

你想要一个自我加入:

SELECT
  A.`House Number` AS House
FROM
  Houses AS A
  INNER JOIN Houses AS B ON A.`House Number`=B.`House Number`
WHERE
  A.Attribute='Colour' AND A.Value='White'
  AND B.Attribute='Stories' AND B.Value='2'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读