Mysql 如何在公共SQL查询中仅选择具有记录值的ID?
我只是无法计算出这个sql查询,我甚至搜索过,但没有找到正确的解决方案。我知道这很简单,但有些事情我做得不对 我的问题是:假设Set\u ID和Acc\u No位于与Acc\u ID相关的不同表格中。如何仅选择包含Acc\u No(1-1110)的Set\u ID 所以从这个Mysql 如何在公共SQL查询中仅选择具有记录值的ID?,mysql,sql-server,Mysql,Sql Server,我只是无法计算出这个sql查询,我甚至搜索过,但没有找到正确的解决方案。我知道这很简单,但有些事情我做得不对 我的问题是:假设Set\u ID和Acc\u No位于与Acc\u ID相关的不同表格中。如何仅选择包含Acc\u No(1-1110)的Set\u ID 所以从这个 Set_ID | Acc_No --------------- 25 | 1-1110 25 | 1-1225 100 | 1-1110 100 | 1-5555 126 |
Set_ID | Acc_No
---------------
25 | 1-1110
25 | 1-1225
100 | 1-1110
100 | 1-5555
126 | 1-1141
126 | 1-1552
150 | 1-1110
150 | 1-1200
201 | 1-1221
201 | 1-1200
对此
Set_ID | Acc_No
---------------
25 | 1-1110
25 | 1-1225
100 | 1-1110
100 | 1-1555
150 | 1-1110
150 | 1-1200
您需要在这两个表上应用内部联接,并在
SET\u ID
上附加一个条件
根据您提供的描述,我尝试创建名为tbl_集合
和tbl_账户
的两个表,并提出以下SQL查询:
SELECT S.Set_ID,A.Acc_No from tbl_sets S
INNER JOIN tbl_accounts A
ON S.Acc_ID = A.Acc_ID
AND S.Set_ID in (SELECT Set_ID FROM tbl_sets ts INNER JOIN tbl_accounts ta ON ts.Acc_ID = ta.Acc_ID WHERE ta.Acc_No = '1-1110')
有关完整的表架构和SQL查询,请参阅此演示:
SELECT S.Set_ID,A.Acc_No from tbl_sets S
INNER JOIN tbl_accounts A
ON S.Acc_ID = A.Acc_ID
AND S.Set_ID in (SELECT Set_ID FROM tbl_sets ts INNER JOIN tbl_accounts ta ON ts.Acc_ID = ta.Acc_ID WHERE ta.Acc_No = '1-1110')
您使用的是两个不同的RDBMS?@Fabio,您是否尝试了下面答案中提供的查询?如果您在查询中遇到任何问题,请告诉我。@草莓,子查询需要进一步优化查询,以便它将返回与
Acc\u-No
-1-1110成对的Set\u-ID
的所有Acc\u-No
组合。