【发布时间】:2019-06-23 12:15:03
【问题描述】:
我想从我的users 表中选择用户,如果他们住在一个城市中,则返回一个布尔值,该城市存在于我数据库中的cities 表中。
问题是,我不能在 users 表中使用城市的 ID,因为我是从外部来源获取用户列表的。
在普通的 SQL 查询中,我会加入城市表 (users.city LIKE cities.name),然后在结果中添加一列,结果为 true false。
但是在我有我的模型User 和我的模型City 的 Laravel eloquent 中这怎么可能。两种模型都有city 列作为文本。
当然,查询应该尽可能高效,我不希望每一行都有单独的查询。
谢谢
【问题讨论】:
-
“我从外部来源获取用户列表”是什么意思?你得到了他们的 ID 数组吗?
-
我得到:姓名,地址,城市,... - 在插入时它会自动添加 id(自动递增)
-
如果你在用户表,主城市中设置一个city_id作为外键,并为城市和用户做关系参考,我会更好。这样你就可以使用 User::has('city',!=,null)。
-
@LimKeanPhang 我什么时候应该这样做?在插入用户时?但是我需要一个额外的查询来从我的数据库中获取所有城市,以检查 user.ctiy 是否在我的数据库中 - 对吧?
-
我已经查询了加入表,请查看。您可能需要做一些调整@Mike_NotGuilty
标签: database laravel join eloquent