如果A与B关联了,也与C关联了,B和C没有关联,B登A的号可以看到C号的消息吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果A与B关联了,也与C关联了,B和C没有关联,B登A的号可以看到C号的消息吗?相关的知识,希望对你有一定的参考价值。
应该是可以的,我记得我几个QQ就是这样关键的,可以收到的,具体你再试试,我这两年不怎么用QQ了,不太清楚了,现在基本用微信,微信没有关联接受相互信息的功能就不知道了 参考技术A 能够看到,因为软件不能判断登录帐号的是谁,如果不是在A的手机上登录,只能看到新消息。您如何查询没有关联记录的记录(通过连接表链接)
【中文标题】您如何查询没有关联记录的记录(通过连接表链接)【英文标题】:How do you query for records with no associated record (linked via join table) 【发布时间】:2022-01-18 00:34:19 【问题描述】:我有表 A 和表 B,还有一个我们称之为 C 的连接表。
A 到 C 有很多 B。
B 有很多 A 到 C。
C table structure:
a_id
b_id
我正在尝试查找关联 B 为零的 As。
这可以使用连接来完成吗?
目前我正在这样做:
as_with_no_bs = A.select|a| a.bs.empty?
但这可能比使用联接效率低得多。
【问题讨论】:
【参考方案1】:假设:
c 记录需要 a_id 和 b_id 才能存在 表名是“as” A 与 C 的关系为has_many :cs
C 表名是“cs”
(一些)可用的解决方案:
导轨
# we could use Arel to make this more "code based" but for the sake of example
A.joins("LEFT OUTER JOIN cs on cs.a_id = as.id")
.where(cs: id: nil)
Rails 4 +
A.where.not(id: C.select(:a_id))
Rails 5+
A.left_joins(:cs).where(cs: id: nil)
Rails 6.1+
A.where.missing(:cs)
【讨论】:
有替代解决方案或上述类似和不同的变体也可以作为基于查询的解决方案有效以上是关于如果A与B关联了,也与C关联了,B和C没有关联,B登A的号可以看到C号的消息吗?的主要内容,如果未能解决你的问题,请参考以下文章