列之间具有特定关系的行

1tuwyuhd  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(284)

假设我有一个mysql表“mytable”,其内容如下

  1. -----------------------
  2. | Column 1 | Column 2 |
  3. -----------------------
  4. | 1 | a |
  5. -----------------------
  6. | 1 | b |
  7. -----------------------
  8. | 2 | a |
  9. -----------------------
  10. | 2 | a |
  11. -----------------------
  12. | 3 | a |
  13. -----------------------
  14. | 4 | b |
  15. -----------------------
  16. | 4 | a |
  17. -----------------------

我想得到第1列中的值,其中第1列中的值不只是与“a”配对,这样结果是

  1. ------------
  2. | Result |
  3. ------------
  4. | 1 |
  5. ------------
  6. | 4 |
  7. ------------

因为值2和3只与“a”配对(是否只有1对或多对与“a”无关)。
注意:我不知道第2列中可能的值是什么-我只是想避免只与“a”配对。有什么建议吗?
谢谢您!

mxg2im7a

mxg2im7a1#

您可以检查count(distinct column2)=2的column1

  1. select column1
  2. from my_table
  3. where column1 in (
  4. select column1
  5. from my_tbale
  6. group by column1
  7. having count(distinct column2) =2
  8. )
dfuffjeb

dfuffjeb2#

SELECT DISTINCT column_1 FROM my_table WHERE column_2 <> 'a';

d8tt03nd

d8tt03nd3#

我想你在找这样的东西:

  1. SELECT DISTINCT col1 from your_table t1 WHERE
  2. (SELECT COUNT(DISTINCT col2) from your_table t2 WHERE t1.col1 = t2.col1) > 1

这样你就可以确定你从中得到的价值 col1 与来自的多个值关联 col2 . 还可以从中获取值的结果 col1 与来自 col2 :

  1. SELECT DISTINCT col1 from your_table t1 WHERE
  2. (SELECT COUNT(DISTINCT col2) from your_table t2 WHERE t1.col1 = t2.col1) =
  3. (SELECT COUNT(DISTINCT col2) from your_table t3)

相关问题