我正在尝试提出最优化的查询来解决这个问题。
我有一个由列名称(字符串)和组织标识(整数)组成的简单表。此表包含属于一个或多个组织的名称列表。
如何获得“Jim”和“Andy”所属组织的所有名称的列表?
例子:
- John,1
- Jim,1
- Jim,2
- Andy,2
- Carl,2
- Jim,3
- Carl,3
- Andy,4
- John,4
- Jim,5
- Randy,5
- Andy,5
所以查询应该返回给我 Jim,2|Andy,2|Carl,2|Jim,5|Randy,5|Andy,5
因为 Jim 和 Andy 都属于组织 2 和5.
有什么想法吗?
最佳答案
一个简单的 JOIN
应该可以做到;
SELECT DISTINCT t1.name
FROM Table1 t1
JOIN Table1 t2 ON t1.organization_id = t2.organization_id AND t2.name = 'Jim'
JOIN Table1 t3 ON t1.organization_id = t3.organization_id AND t3.name = 'Andy'
ORDER BY t1.name
关于sql - 简单表设计的最佳 sql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17014449/