假设我们有两个表:
Company
+---+-----+
|id | name|
+---+-----+
|1 | bar |
|2 | foo |
+---+-----+
Branch
+----+----+-------+
|cid | id | profit|
+----+----+-------+
|1 | 10 | 100 |
|1 | 11 | 200 |
|2 | 20 | 50 |
+----+----+-------+
--cid in Branch is the foreign key to company id
查询是找出至少有一个分公司利润大于 100 的独特公司。
一种方法是:
SELECT DISTINCT c.id, c.name
FROM Company c, Branch b
WHERE c.id == b.cid AND b.profit > 100;
特定情况是很少有公司有分支机构(基本上 Branch 表中的条目远少于 Company 中的条目。鉴于此信息,上述查询是最好的吗?或者有没有其他选择?