Mysql SQl选择出现在一个或多个集中的数据

Mysql SQl选择出现在一个或多个集中的数据,mysql,sql,sql-server,Mysql,Sql,Sql Server,我有一种多对多的关系 code1 code2 1 10 <-- Desired (1 appears more than once) 1 11 <-- Desired (1 appears more than once) 1 17 <-- Desired (1 appears more than once) 2 10 3 11 <-- Desired (3 appears m

我有一种多对多的关系

code1 code2
  1    10       <-- Desired (1 appears more than once)
  1    11       <-- Desired (1 appears more than once)
  1    17       <-- Desired (1 appears more than once)
  2    10
  3    11       <-- Desired (3 appears more than once)
  3    17       <-- Desired (3 appears more than once)
  4    10
  5    10
code1代码2

1 10您可以使用GROUP BY并将其过滤掉。试试这个:

SELECT code1
FROM myTable
GROUP BY code1
HAVING COUNT(*) > 1;
这将通过对所有出现多次的“code1”值进行分组并查看哪些组有多行来提取这些值

编辑

如果要在其他列上包含条件,可以先编写一个查询,只获取所需的行(如您在注释中所述,其中code2等于11或17),如下所示:

SELECT code1, code2
FROM myTable
WHERE code2 = 11 OR code2 = 17;
然后,您可以对该查询应用上述过滤器。结果集中不需要代码2:

SELECT code1
FROM myTable
WHERE code2 = 11 OR code2 = 17
GROUP BY code1
HAVING COUNT(*) > 1;

我在中对此进行了测试,它成功了。

您可以使用GROUP BY并将其过滤掉。试试这个:

SELECT code1
FROM myTable
GROUP BY code1
HAVING COUNT(*) > 1;
这将通过对所有出现多次的“code1”值进行分组并查看哪些组有多行来提取这些值

编辑

如果要在其他列上包含条件,可以先编写一个查询,只获取所需的行(如您在注释中所述,其中code2等于11或17),如下所示:

SELECT code1, code2
FROM myTable
WHERE code2 = 11 OR code2 = 17;
然后,您可以对该查询应用上述过滤器。结果集中不需要代码2:

SELECT code1
FROM myTable
WHERE code2 = 11 OR code2 = 17
GROUP BY code1
HAVING COUNT(*) > 1;

我在中对此进行了测试,它成功了。

您可以使用GROUP BY并将其过滤掉。试试这个:

SELECT code1
FROM myTable
GROUP BY code1
HAVING COUNT(*) > 1;
这将通过对所有出现多次的“code1”值进行分组并查看哪些组有多行来提取这些值

编辑

如果要在其他列上包含条件,可以先编写一个查询,只获取所需的行(如您在注释中所述,其中code2等于11或17),如下所示:

SELECT code1, code2
FROM myTable
WHERE code2 = 11 OR code2 = 17;
然后,您可以对该查询应用上述过滤器。结果集中不需要代码2:

SELECT code1
FROM myTable
WHERE code2 = 11 OR code2 = 17
GROUP BY code1
HAVING COUNT(*) > 1;

我在中对此进行了测试,它成功了。

您可以使用GROUP BY并将其过滤掉。试试这个:

SELECT code1
FROM myTable
GROUP BY code1
HAVING COUNT(*) > 1;
这将通过对所有出现多次的“code1”值进行分组并查看哪些组有多行来提取这些值

编辑

如果要在其他列上包含条件,可以先编写一个查询,只获取所需的行(如您在注释中所述,其中code2等于11或17),如下所示:

SELECT code1, code2
FROM myTable
WHERE code2 = 11 OR code2 = 17;
然后,您可以对该查询应用上述过滤器。结果集中不需要代码2:

SELECT code1
FROM myTable
WHERE code2 = 11 OR code2 = 17
GROUP BY code1
HAVING COUNT(*) > 1;


我在中对此进行了测试,它成功了。

只是一个旁注mysq和sql server是两个不同的数据库只是一个旁注mysq和sql server是两个不同的数据库只是一个旁注mysq和sql server是两个不同的数据库我如何更具体地描述具有
code2
的“code1”作为11和17?@DeveloperNo.1。你可以问另一个问题。这个答案回答了这个问题。我在问题中提到了这一点。我没有在原来的问题中添加任何新内容。@DeveloperNo.1您可以包含where子句。我编辑了我的答案。我知道戈登是从哪里来的,正如你几乎没有暗示的11和17。你说你想要不止一次出现的值,所以这就是我最初给你的。谢谢!我一直为此绞尽脑汁。我想我需要刷新我的sql。我怎样才能更具体地描述将
code2
作为11和17的“code1”。你可以问另一个问题。这个答案回答了这个问题。我在问题中提到了这一点。我没有在原来的问题中添加任何新内容。@DeveloperNo.1您可以包含where子句。我编辑了我的答案。我知道戈登是从哪里来的,正如你几乎没有暗示的11和17。你说你想要不止一次出现的值,所以这就是我最初给你的。谢谢!我一直为此绞尽脑汁。我想我需要刷新我的sql。我怎样才能更具体地描述将
code2
作为11和17的“code1”。你可以问另一个问题。这个答案回答了这个问题。我在问题中提到了这一点。我没有在原来的问题中添加任何新内容。@DeveloperNo.1您可以包含where子句。我编辑了我的答案。我知道戈登是从哪里来的,正如你几乎没有暗示的11和17。你说你想要不止一次出现的值,所以这就是我最初给你的。谢谢!我一直为此绞尽脑汁。我想我需要刷新我的sql。我怎样才能更具体地描述将
code2
作为11和17的“code1”。你可以问另一个问题。这个答案回答了这个问题。我在问题中提到了这一点。我没有在原来的问题中添加任何新内容。@DeveloperNo.1您可以包含where子句。我编辑了我的答案。我知道戈登是从哪里来的,正如你几乎没有暗示的11和17。你说你想要不止一次出现的值,所以这就是我最初给你的。谢谢!我一直为此绞尽脑汁。我想我需要刷新我的sql。