如何从两个表中选择一个项目只有一个值

露西

我有两个表:

表一

Item_Number  EVENT_ID

表乙

EVENT_ID  EVENT_TYPE_ID

EVENT_IDs为独特的,他们是在两个表是相同的。EVENT_TYPE_ID具有从 1 到 100 的不同值。但我只对 EVENT_TYPE_ID=40 和 EVENT_TYPE_ID=41 感兴趣。所以我使用内连接来挑选那些只有 EVENT_TYPE_ID=40 或 EVENT_TYPE_ID=41 的项目。

SELECT  
    ITEM_NUMBER, EVENT_TYPE_ID 
FROM
    A
INNER JOIN
    B ON A.EVENT_ID = B.EVENT_ID 
WHERE 
    EVENT_TYPE_ID = 40 or EVENT_TYPE_ID = 41

我得到了一些这样的结果:

Item_Number     Event_Type_ID
-----------------------------
1004            40
1019            41
1002            41
1109            40
1004            41
1004            40
1019            40
1002            41
1109            40

这些Item,有的只有type=40的事件,有的只有type=41的事件,有的同时有40和41类型的事件。现在我想挑选那些只有事件类型 40 或 41,但没有这两个事件的项目。我应该如何编写查询?

帕克托帕

我建议使用GROUP BYand更简单的解决方案COUNT

SELECT ITEM_NUMBER, COUNT(ITEM_NUMBER) COUNT_ITEM_NUMBER
from A  
INNER Join B ON A.EVENT_ID=B.EVENT_ID 
WHERE EVENT_TYPE_ID IN (40, 41)
GROUP BY ITEM_NUMBER
HAVING COUNT(ITEM_NUMBER) = 1;

如果您想知道记录上的 EVENT_TYPE_ID,您可以在此之后进行另一个连接,例如

SELECT GROUPED.ITEM_NUMBER, B.EVENT_TYPE_ID
FROM (
  SELECT ITEM_NUMBER, COUNT(ITEM_NUMBER) COUNT_ITEM_NUMBER
  from A  
  INNER Join B ON A.EVENT_ID=B.EVENT_ID 
  WHERE EVENT_TYPE_ID (40, 41)
  GROUP BY ITEM_NUMBER
  HAVING COUNT(ITEM_NUMBER) = 1 ) GROUPED
INNER Join B ON GROUPED.EVENT_ID=B.EVENT_ID
WHERE EVENT_TYPE_ID (40, 41)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何仅使用一个查询从另一个表中选择两个不同的值?

来自分类Dev

如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

来自分类Dev

根据另外两个表从一个表中选择值(关系)

来自分类Dev

从表中选择重复第一个值以结合两个键

来自分类Dev

SQLite如何在一个查询中从两个表中选择sum()

来自分类Dev

如何通过复合主键从两个表中选择一个?

来自分类Dev

在两个表之间,如何选择一个存在特定值的id的表,mysql

来自分类Dev

有两个表-一个用于选择,一个用于更新

来自分类Dev

只有一个盒子而不是两个

来自分类Dev

只有一个查询,而不是两个

来自分类Dev

在一个查询中从两个表中选择一个记录,并从另一个表中选择多个记录

来自分类Dev

如何从R中的表中选择一个值

来自分类Dev

如何选择一个可以来自两个不同表的值?

来自分类Dev

Contactform有两个日期选择。只有一个正在显示

来自分类Dev

两个 SQL 表中的任何一个都有一个值

来自分类Dev

从两个临时表中选择到另一个临时表

来自分类Dev

当一个表有多个值时如何连接两个表

来自分类Dev

如果有两种语言,MySQL 从表中选择一个值

来自分类Dev

如何使用JOIN从另一个表中选择一个值

来自分类Dev

只有一个值等于并在多项选择中选择

来自分类Dev

只有一个值等于并在多项选择中选择

来自分类Dev

从两个表中选择时添加一个额外的列

来自分类Dev

从具有两个级别的MultiIndexed数据框中选择第一个值

来自分类Dev

如何通过在Shiny App中的selectInput()中选择一个选项来打印两个表?

来自分类Dev

如何在同一个表的两个不同列中选择匹配的记录?

来自分类Dev

Rails形成两个选择一个值

来自分类Dev

只有一个X屏幕工作;如何获得两个X屏幕?

来自分类Dev

开发一个有两个名字的项目?

来自分类Dev

sql-如何从连接多个表中选择只有一个不同列的多个列

Related 相关文章

  1. 1

    如何仅使用一个查询从另一个表中选择两个不同的值?

  2. 2

    如何从一个表中选择一个值,而在另一个表中满足两个单独的条件对

  3. 3

    根据另外两个表从一个表中选择值(关系)

  4. 4

    从表中选择重复第一个值以结合两个键

  5. 5

    SQLite如何在一个查询中从两个表中选择sum()

  6. 6

    如何通过复合主键从两个表中选择一个?

  7. 7

    在两个表之间,如何选择一个存在特定值的id的表,mysql

  8. 8

    有两个表-一个用于选择,一个用于更新

  9. 9

    只有一个盒子而不是两个

  10. 10

    只有一个查询,而不是两个

  11. 11

    在一个查询中从两个表中选择一个记录,并从另一个表中选择多个记录

  12. 12

    如何从R中的表中选择一个值

  13. 13

    如何选择一个可以来自两个不同表的值?

  14. 14

    Contactform有两个日期选择。只有一个正在显示

  15. 15

    两个 SQL 表中的任何一个都有一个值

  16. 16

    从两个临时表中选择到另一个临时表

  17. 17

    当一个表有多个值时如何连接两个表

  18. 18

    如果有两种语言,MySQL 从表中选择一个值

  19. 19

    如何使用JOIN从另一个表中选择一个值

  20. 20

    只有一个值等于并在多项选择中选择

  21. 21

    只有一个值等于并在多项选择中选择

  22. 22

    从两个表中选择时添加一个额外的列

  23. 23

    从具有两个级别的MultiIndexed数据框中选择第一个值

  24. 24

    如何通过在Shiny App中的selectInput()中选择一个选项来打印两个表?

  25. 25

    如何在同一个表的两个不同列中选择匹配的记录?

  26. 26

    Rails形成两个选择一个值

  27. 27

    只有一个X屏幕工作;如何获得两个X屏幕?

  28. 28

    开发一个有两个名字的项目?

  29. 29

    sql-如何从连接多个表中选择只有一个不同列的多个列

热门标签

归档