首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySQL中组合多个查询?

如何在MySQL中组合多个查询?
EN

Stack Overflow用户
提问于 2017-10-09 07:56:15
回答 1查看 27关注 0票数 0

Backgronud

我有很多餐馆和连锁餐厅。在我的数据库中,每个连锁餐厅都有一系列特定的餐厅。

例如,PizzaHut的连锁餐厅在我的区域有餐厅。

目标

我想知道,考虑到一系列的cityIds,有多少家餐厅连锁店。例如,给定数组1, 2,我想知道每个城市的餐厅连锁店的ids:

代码语言:javascript
复制
[
    {cityId: 1, chains: [1, 2, 3]}, 
    {cityId: 2, chains: [4, 5]}
]

问题

问题是,我不知道如何在一个查询中做到这一点。到目前为止,我管理单个城市的所有链ids:

代码语言:javascript
复制
SELECT DISTINCT id
FROM   restaurant_chains
       INNER JOIN restaurants
               ON restaurant_chains.id = restaurants.chainId
       WHERE  restaurants.city = MY_CITY_ID_HERE

这里,我在我的restaurant_chains表和我的restaurants表(链的Id )之间做了一个ON

然后我检查每一家餐馆,并检查它是否在我想要的城市。

研究

对于一个cityIds数组来说,唯一的方法就是有一个数组。但是MySQL没有数组。于是我搜索了WHILE循环,UNION ALLTMP_TABLES

How can I simulate an array variable in MySQL?

所有这些我都不太明白,我也不知道如何应用到我的例子中。

发问

如何对一组城市进行单次查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-09 07:58:53

除了你想要的一切之外,只要选择城市id就行了。有了它,您可以遍历结果,并将每个结果与城市标识关联起来。

代码语言:javascript
复制
SELECT DISTINCT restaurants.city, id
FROM   restaurant_chains
       INNER JOIN restaurants
               ON restaurant_chains.id = restaurants.chainId
       WHERE  restaurants.city IN (CITY_ID1, CITY_ID2, CITY_ID3...)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46641363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档