0

我有一个包含两列的视图:一个人的 ID(一个数字)和他们所在的部门(以数字 1-5 给出)。

我想创建一个视图来显示人们是否属于同一部门。我认为这将包含三列:ID1、ID2 和 SameSector。第一列将列出 ID,对于第 1 列中的每个 ID,第二列将列出所有 ID。第三列是 if 语句,如果两个 ID 的扇区相同,则为 1,否则为 0。这会稍微复杂一些,因为一个人可以属于多个部门。

例如:

我有:

身份证部门

1 1
2 1
2 5
3 1

我想:

ID1 ID2 同扇区
1 1 1
1 2 1
1 2 0
1 3 0
2 1 1
2 1 0

等等

我猜这涉及某种自加入和 if 语句,但我不知道如何让所有 ID 字段列在 ID1 列中并与 ID2 中的所有 ID 字段匹配有什么想法吗?

4

1 回答 1

1

这应该是你想要的:

SELECT a.ID AS ID1, b.ID AS ID2, IF(a.Sector=b.Sector,1,0) AS SameSector
FROM theTable AS a, theTable AS b

http://sqlfiddle.com/#!2/f2cbc/4

我最初有一个更复杂的查询,但后来意识到你想要一个完整的交叉连接,包括与自身比较的相同 ID。

于 2012-07-12T19:42:09.450 回答