如何显示尚未在SQL上分配的ID?

时间:2016-05-27 03:49:05

标签: mysql sql database

好的,我这里有两个表,包括问题和另一个表名称受让人。

 SELECT * FROM issue

id | key |
-
1  |  ABC-1 |
2  |  ABC-2 |
3  | ABC-3 |

SELECT * FROM assignee

a_id | issue_id | name
-
10 | 1 | John
20 | 2 | Freddy
30 | 2 | John

我的第一个问题是,如何显示没有SQL受让人的所有问题的问题密钥,例如id 3没有分配给任何?

我的下一个问题是,a_id和issues_id都是主键吗?

我的最后一个问题是,如何改进此表,例如,Freddy和John被分配到ABC-2。我应该创建另一个只分配user_id及其名称的表吗?

1 个答案:

答案 0 :(得分:1)

  

问题1 - 如何显示所有问题的问题密钥   SQL的受让人?

SELECT
 I.*
FROM Issue AS I
LEFT JOIN assignee AS A
ON I.id=A.issue_id
WHERE A.issue_id IS NULL
  

问题2 - a_id和issues_id都是主键吗?

理想情况下,a_id应该是主键,而issue_id应该是引用问题表的外键。

  

问题3 - 如何改进此表格,例如Freddy和John   被分配到ABC-2。我应该创建另一个只分配的表   user_id及其名称?

看来问题和受让人之间有很多关系。您可以创建另一个映射表来维护这种关系。