如何为我的数据库连接表
Posted
技术标签:
【中文标题】如何为我的数据库连接表【英文标题】:How to Join Tables For My Database 【发布时间】:2015-06-15 03:44:59 【问题描述】:我有一个包含两个表的数据库,我正在尝试加入。
Table1: Employee
Table2: Video_Store
这两个表都有一个视频商店 ID (VS_ID)。我希望它显示员工的名字和姓氏以及他们关联的 VS_ID。 当我运行此语句时:
select Video_Store.VS_ID, Video_Store.VS_Name, Employee.E_LName, Employee.E_FName
from Video_Store, Employee
这就是结果。每个员工只有一个 VS_ID 而不是六个。怎样才能减少冗余?
1. 1 West Street Borg James
2. 4 East Street Borg James
3. 5 North Tremo Borg James
4. 6 South Stree Borg James
5. 7 Elm Street Borg James
6. 8 Boston Stre Borg James
7. 1 West Street Wong Franklin
8. 4 East Street Wong Franklin
9. 5 North Tremo Wong Franklin
10. 6 South Stree Wong Franklin
11. 7 Elm Street Wong Franklin
12. 8 Boston Stre Wong Franklin
13. 1 West Street Freed Alex
14. 4 East Street Freed Alex
15 5 North Tremo Freed Alex
16. 6 South Stree Freed Alex
17. 7 Elm Street Freed Alex
18. 8 Boston Stre Freed Alex
19. 1 West Street James Jared
20. 4 East Street James Jared
21. 5 North Tremo James Jared
22. 6 South Stree James Jared
23. 7 Elm Street James Jared
24. 8 Boston Stre James Jared
25. 1 West Street Wallace Jennifer
26. 4 East Street Wallace Jennifer
27. 5 North Tremo Wallace Jennifer
28. 6 South Stree Wallace Jennifer
29. 7 Elm Street Wallace Jennifer
30. 8 Boston Stre Wallace Jennifer
【问题讨论】:
您在VS_ID
列上缺少 JOIN,因此您得到的是笛卡尔结果。
【参考方案1】:
这两个表都有一个视频商店 ID (VS_ID)。我想让它显示 员工的名字和姓氏以及他们的 VS_ID 相关联。
没错,您只是缺少指定VS_ID
条件。
SELECTVideo_Store.VS_ID, Video_Store.VS_Name, Employee.E_LName, Employee.E_FName
FROM Video_Store
JOIN Employee ON Video_Store.VS_ID = Employee.VS_ID
由于您没有指定任何条件,因此您的查询返回两个表的笛卡尔积。
【讨论】:
【参考方案2】:使用JOIN ... ON
SELECT v.VS_ID, v.VS_Name, e.E_LName, e.E_FName
FROM Video_Store v
JOIN Employee e
ON v.VS_ID = e.VS_ID
【讨论】:
以上是关于如何为我的数据库连接表的主要内容,如果未能解决你的问题,请参考以下文章
如何为我的 SQL 数据库添加远程主机以将其与我开发的应用程序连接
如何为复杂的 sql 查询获取中间数据。 PostgreSQL