mysql - 根据外部表过滤结果

标签 mysql sql laravel laravel-5 foreign-keys

假设我有 4 个表:collectionsvenueslocationscities

一个Collection属于许多Venues,一个Venue属于许多Collections

VenueLocation 之间存在一对一的关系(通过 id 字段)

一个位置属于一个城市,一个城市有多个位置

我想要实现的是这样的场景:

如果我在 cities 表上有一条记录的 id,我想获取所有 collectionsvenuescities 表上的id 关联的每个collection

我该如何实现这一目标? 我试图尽可能具体,但如果有些内容仍然含糊其辞。
我正在使用 Laravel。所以如果你用 Eloquent 提供,我将不胜感激,但 SQL 查询也可以。

最佳答案

同步您提供引用的表的键

SELECT co.anycolumn, v.anycolumn FROM collections co, venues v, cities ci, locations lo WHERE co.id = v.refid AND ci.refid = lo.refid AND lo = 'WantedLoc';

简单的逻辑: SELECT --> 所需的列值 FROM --> 引用了表格 WHERE --> 条件

关于mysql - 根据外部表过滤结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37143401/

相关文章:

php - Laravel 无法在匿名函数内使用 $this

php - Laravel 中如何获取文件输入名称?

php - SESSION检查后无法登录

java - 连接mysql的jar无法运行

php - 返回按文章日期排序的类别

mysql - 获取每组分组结果的前n条记录

mysql - RoR 监视经常更新的表中的更改

java - Apache Spark SQL BLOB 数据类型

mysql - mysql插入的格式化日期

php - 如何将 laravel 6 升级到 7