当前位置: 首页 > 知识库问答 >
问题:

如何从多个表中找出SQL中不匹配特定条件的结果?

颜熙云
2023-03-14

我有三张桌子:

Person表以ID作为主键存储基本的Person明细此人可以拥有关系(父亲/母亲等),这些关系保存在Relationship表中,但是他们的用户是在Person表中创建的(例如Person表中的ID=2,3),这样我们就知道2,3与用户1(carry)相关。我们还有第三个表-地址,它存储用户ID方面的地址。(用户和他的相关人员,他们也是用户)我想知道在SQL中是否存在一个用户或他的相关用户的地址。如何实现这一点?

共有1个答案

邓建柏
2023-03-14

您可以组合两个规则并在组合表中进行搜索,如下所示

SELECT * FROM
(

SELECT username,id,Address.Address
FROM Person
INNER JOIN Address ON Person.id = Address.Userid

UNION ALL

SELECT username,id,Address.Address
FROM Person
INNER JOIN Relationship ON Relationship.Relatedid = Person.id
INNER JOIN Address ON Relationship.Userid = Address.Userid

) as RES
WHERE Address = 'xyz road'

您还可以找到DBFiddle链接来锻炼

 类似资料:
  • 问题内容: 如果我有一个看起来像这样的表: 还有一个THINGS表,如下所示: 我正在尝试提出一个纯SQL查询,该查询可以让我找出什么可以访问什么。基本上,我想要一个看起来像这样的查询: 并返回“ John”和“ Mary”。关键是访问事物所需的许可数量是任意的。 我觉得这应该很明显,但是我无法提出一个优雅的解决方案。首选与Oracle兼容的解决方案。 编辑: Kosta和JBrooks的解决方案

  • TLDR;我想通过检查当前结果是否不存在于另一个结果中来筛选出结果 所以目前我有这2个查询 导致 而且 结果(当前只有一个数据) 就我的逻辑而言,这就是我想出的 但结果是空的,我所期待的是 我哪里做错了?

  • 有人能告诉我如果某些条件匹配,如何从forEach循环中退出吗?我正在使用并行流。 下面是我的代码。 < code > if(referencing value . equals(row . get(refColIndex)))然后我将值插入到映射中,然后我需要退出。

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: Python:如何查找列表交集? 我在.txt中有两个数据列表 我想找出在两个列表中都出现的名字。我该怎么做? 问题答案: 使用集: 该运营商表示“给我这两个集合的交集” 或者,您可以使用以下方法:

  • 我已经制作了一个带有几何图形和for循环的表格,用于打印出直角图形的名称,但我想为这个图形打印一个符合条件的随机名称,如果可能的话,还可以创建另一个表格,其中只包含符合条件的图形。我试图使用,但我不知道怎么做。我将感谢你的帮助:

  • 我正在写一个求解方程求解方法。方法将是递归的;搜索所有外括号,当找到时,重新求解括号内的值,当没有找到括号时返回值。 Regex.Replace(...)替换指定模式的所有匹配项。我希望能够匹配到多个场景,并用不同的输出替换每个场景