首页 > 解决方案 > 在 Select Sql 语句中,使用未链接表和链接表有什么用

问题描述

在选择查询中,将未链接表或表与链接表一起使用的实际示例和用途是什么,因为我们获得的记录集只是重复了未链接表列的数据以及链接表数据。

就像有 3 张桌子一样:

tblMovies未链接到任何表。tblStudentDetailstblStudentAddress通过外键链接StudentId在两者的列上。

那你能说,

select tblMovies.MovieName, tblStudentDetails.StudentName, tblStudentAddress.StudentCountry
from tblStudentMovies, tblStudentDetails
inner join tblStudentAddress ON tblStudentDetails.StudentId = tblStudentAddress.StudentId

tbl电影:

MovieName
--------------
Sundance
Flashdance

tbl学生详情:

StudentId   StudentName
------------------------
1                 Roger
2                 Sam

tbl学生地址:

StudentId   StudentCountry
---------------------------
1                  America
2                  France

那么我们得到的结果集是,

Sundance     Roger   America
Flashdance   Roger   America
Sundance     Sam     France
Flashdance   Sam     France

这里谈到现实生活场景,电影表和数据与其他 2 个学生表没有关系。

那么什么时候是这样的查询,它只是重复在现实生活中实际使用的未链接表记录。

就像你能举出使用这种查询的现实生活示例表的例子。

标签: mysqlsqlsql-server

解决方案


这解决了问题的原始版本。

您的查询相当于:

Select T1.MovieName, T2.StudentName, T3.StudentCountry
from T1 join
     T2
     on T1.StudentId = T2.StudentId cross join
     T3 
     

如果这是您想要的,那么您应该明确说明cross join. 并且JOIN应该在实际参与的表上表示JOIN。如果你想加入T1T2然后加入它的笛卡尔积,你会这样做T3

最实际的用例是只T3包含一行。


推荐阅读