我尝试使用 MySQL 从下表中选择数据:
INSERT INTO `test` (`id_location`, `id_sector`, `id_group`) VALUES
(1, 1, 2),
(2, 1, 2),
(3, 1, 3),
(4, 3, 3),
(5, 2, 4),
(6, 3, 4),
(7, 2, 5),
(8, 1, 5),
我想选择 id_sector = 1
的行,但我还需要返回与查询返回的组值相同的任何行。例如:
SELECT * FROM `test` WHERE `id_sector` = `1`
将返回行id_location
1、2、3和8,但我会丢失具有id_location
4和7的行,这是我需要的,因为它们具有相同的id_group
(3 和 7)
最佳答案
您应该首先获取与您选择的 id_sector 相对应的 id_groups 的不同列表,然后根据该列表进行查询:
SELECT * FROM `test` WHERE `id_group` IN
(SELECT DISTINCT `id_group` FROM `test` WHERE `id_sector` = 1)
关于mysql - 选择查询并过滤至少一个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029635/