如何建立SQL查询选择不相关的项目在Postgres中的多对多关系?

达津兹

我的编码器编程语言实体具有多对多关系。数据库结构如下:

coder
  - id (primary key)
  - name

proglang
  - id (primary key)
  - name

coder_to_proglang
  - id (primary key)
  - coder_id (foreign key for coder table)
  - proglang_id (foreign key for proglang table)

问题是如何选择特定编码器不知道编程语言

我最好的SQL查询是:

select p.*, c.id as coder_id
from "proglang" as "p"
         left join "coder_to_proglang" as "j" on "p"."id" = "j"."proglang_id"
         left join "coder" as "c" on "c"."id" = "j"."coder_id"
where j.id is null or c.id != :coderId

我当时是这样想的:未知语言是指没有通过联结表与编码器链接的语言,因此联结表ID可以为NULL,或者该语言可以与其他编码器链接。但这是行不通的,因为其他编码人员可以知道给定编码人员所知道的相同语言。

我还怀疑我们可以使用某种联接来从一组所有现有语言中减去一组已知语言,但无法弄清楚如何在SQL中进行描述。

戈登·利诺夫

创建所有语言(使用cross join)和代码的组合;然后过滤掉存在的那些:

select c.name as coder, p.name as language
from proglang p cross join
     coder c left join
     coder_to_proglang cp
     on cp.proglang_id = p.id and cp.coder_id = c.id
where cp.coder_id is null;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何编写附加不相关行的SQL查询?

来自分类Dev

如何在SQL中检查多个不相关的条件?

来自分类Dev

如何选择多对多关系中的行?(SQL)

来自分类Dev

在Laravel 5中建立多对多关系的动态查询

来自分类Dev

在SQL中查询多对多关系

来自分类Dev

多对多关系的SQL查询

来自分类Dev

Django - 查询以检查多对多关系字段中的项目

来自分类Dev

如何查询多对多关系?

来自分类Dev

如何为这个问题在sql中使用内部联接编写不相关的查询?

来自分类Dev

有没有办法在SQL查询中返回多个不相关的结果?

来自分类Dev

具有多个不相关表的SQL查询

来自分类Dev

在自身模型中建立多对多关系

来自分类Dev

如何在Flask SQL Alchemy中查询一对多/多对多关系?

来自分类Dev

如何合并到不相关表中仅1行的2个查询结果

来自分类Dev

熊猫:如何最好地选择不相关的功能?

来自分类Dev

修改不相关表中的现有查询

来自分类Dev

Rails查询,基于不相关模型中的范围

来自分类Dev

Laravel 处理不相关的关系

来自分类Dev

SQL查询在多对多关系中的精确匹配

来自分类Dev

多对多关系中的sql查询返回单个记录

来自分类Dev

如何在Laravel中从多对多关系的一对多关系中获取项目?

来自分类Dev

如何查询多对多关系中的空记录

来自分类Dev

如何从多对多关系的属性中获取Django查询的值?

来自分类Dev

如何从多对多关系的属性中获取Django查询的值?

来自分类Dev

如何在Oracle中获取多对多关系查询?

来自分类Dev

如何在 Laravel 中查询逆多对多关系

来自分类Dev

如何在不相关的ViewModel中设置数据

来自分类Dev

Postgres SQL加入多对多关系

来自分类Dev

Laravel多对多/从db中选择与另一个不相关的条目

Related 相关文章

  1. 1

    如何编写附加不相关行的SQL查询?

  2. 2

    如何在SQL中检查多个不相关的条件?

  3. 3

    如何选择多对多关系中的行?(SQL)

  4. 4

    在Laravel 5中建立多对多关系的动态查询

  5. 5

    在SQL中查询多对多关系

  6. 6

    多对多关系的SQL查询

  7. 7

    Django - 查询以检查多对多关系字段中的项目

  8. 8

    如何查询多对多关系?

  9. 9

    如何为这个问题在sql中使用内部联接编写不相关的查询?

  10. 10

    有没有办法在SQL查询中返回多个不相关的结果?

  11. 11

    具有多个不相关表的SQL查询

  12. 12

    在自身模型中建立多对多关系

  13. 13

    如何在Flask SQL Alchemy中查询一对多/多对多关系?

  14. 14

    如何合并到不相关表中仅1行的2个查询结果

  15. 15

    熊猫:如何最好地选择不相关的功能?

  16. 16

    修改不相关表中的现有查询

  17. 17

    Rails查询,基于不相关模型中的范围

  18. 18

    Laravel 处理不相关的关系

  19. 19

    SQL查询在多对多关系中的精确匹配

  20. 20

    多对多关系中的sql查询返回单个记录

  21. 21

    如何在Laravel中从多对多关系的一对多关系中获取项目?

  22. 22

    如何查询多对多关系中的空记录

  23. 23

    如何从多对多关系的属性中获取Django查询的值?

  24. 24

    如何从多对多关系的属性中获取Django查询的值?

  25. 25

    如何在Oracle中获取多对多关系查询?

  26. 26

    如何在 Laravel 中查询逆多对多关系

  27. 27

    如何在不相关的ViewModel中设置数据

  28. 28

    Postgres SQL加入多对多关系

  29. 29

    Laravel多对多/从db中选择与另一个不相关的条目

热门标签

归档