如何为我的数据库连接表

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

如何为 mysql 数据库创建多个 Debezium 连接器

如何为 Riak 配置连接池

分发键如何为GreenPlum分段分配数据

如何为 Mongoose 连接设置 TLS