【发布时间】:2015-08-21 10:05:43
【问题描述】:
假设我们有数据库:
-----------
| A -|- B |
|----|----|
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
-----------
其中A 和B 是主键。假设我们要获取所有As中包含B中1和2的元素。
SELECT A FROM Table WHERE B = 1 AND B = 2;
上述失败是因为它永远不会成立,因为查询仅针对单个记录。
SELECT A FROM Table WHERE B = 1 OR B = 2;
有效但错误地包含主键值 2,它仅映射到 B 中的 1,而不是 B 中的 1 和 2。
【问题讨论】:
-
A 可能是外键?
-
修复了这个问题。 A 和 B 现在是主键。
-
您的意思是 (A, B) 现在是唯一的主键...(从问题中删除 pk 部分,您将不必再回答任何有关它的问题!)跨度>
标签: sql