从2个表检索数据的SQL查询
你能帮我解决一些我脑子里想不出来的简单问题吗 我有两张桌子:从2个表检索数据的SQL查询,sql,Sql,你能帮我解决一些我脑子里想不出来的简单问题吗 我有两张桌子: 表1=电影 表2=演员 假设我有3部电影:《独立日》、《水库狗》和《阿甘正传》 我还有7位演员:威尔·史密斯、杰夫·戈德布鲁姆、昆汀·塔伦蒂诺、迈克尔·马德森、蒂姆·罗斯、汤姆·汉克斯、罗宾·赖特·潘 比方说,我想运行一个查询,它将为我带来史密斯和杰夫·戈德布鲁姆将在哪里出现的正确电影。查询应该是什么样子 这应该很容易,但我现在觉得自己很笨 提前谢谢 您应该使用一个与演员和电影匹配的表。将其称为AppearsIn,并有两列Movi
- 表1=电影
- 表2=演员
提前谢谢 您应该使用一个与
演员
和电影
匹配的表。将其称为AppearsIn
,并有两列MovieId
和ActorId
,这两列将电影与特定演员对应起来。您试图产生的是所谓的“多对多”关系,您应该更多地了解如何为该数据集生成查询和模式的示例。您应该使用与演员
以及电影
匹配的表。将其称为AppearsIn
,并有两列MovieId
和ActorId
,这两列将电影与特定演员对应起来。您试图产生的是所谓的“多对多”关系,您应该更多地了解如何为该数据集产生查询和模式的示例。要建立电影/演员关系,您需要三个表而不是两个表
**Movies**
Id, Title
**Actors**
Id, Name
**MovieActors**
MovieId
ActorId
您可以通过以下方式按演员查询电影:
select m.* from movies m
inner join MovieActors ma on ma.MovieId = m.Id
inner join Actors a on a.Id = ma.ActorId
where (a.Name = 'Will Smith' OR a.Name = 'Jeff Goldblum')
只需更改where子句,即可根据演员获得不同的电影。确保您也不会暴露于sql注入
祝你好运 要建立电影/演员关系,需要三张表而不是两张表
**Movies**
Id, Title
**Actors**
Id, Name
**MovieActors**
MovieId
ActorId
您可以通过以下方式按演员查询电影:
select m.* from movies m
inner join MovieActors ma on ma.MovieId = m.Id
inner join Actors a on a.Id = ma.ActorId
where (a.Name = 'Will Smith' OR a.Name = 'Jeff Goldblum')
只需更改where子句,即可根据演员获得不同的电影。确保您也不会暴露于sql注入
祝你好运 假设你有三张桌子:[电影],[演员]和[AppearsIn]。后者将电影与演员相匹配
Table [Movies] columns:
[MovieId] (uniqueidentifier, primary key)
[MovieTitle] (varchar)
...
Table [Actors] columns:
[ActorId] (uniqueidentifier, primary key)
[ActorName] (varchar)
...
Table [AppearsIn] columns:
[AppearsIn_ActorId] (uniqueidentifier, foreign key on [Actors].[ActorId])
[AppearsIn_MovieId] (uniqueidentifier, foreign key on [Movies].[MovieId])
然后:
假设你有三张桌子:[电影],[演员]和[AppearsIn]。后者将电影与演员相匹配
Table [Movies] columns:
[MovieId] (uniqueidentifier, primary key)
[MovieTitle] (varchar)
...
Table [Actors] columns:
[ActorId] (uniqueidentifier, primary key)
[ActorName] (varchar)
...
Table [AppearsIn] columns:
[AppearsIn_ActorId] (uniqueidentifier, foreign key on [Actors].[ActorId])
[AppearsIn_MovieId] (uniqueidentifier, foreign key on [Movies].[MovieId])
然后:
您的模式是什么样子的?您有外键吗?有关您编写的代码问题的问题必须在问题本身中描述特定的问题,并包括重现问题的有效代码。您需要共享表架构。在分享之前尝试谷歌sql连接。Dave Zych是对的,我们需要查看您的数据库结构。我没有外键。。。有点傻,不知道外键的概念是什么(你的模式是什么样子的?你有外键吗?关于你编写的代码问题的问题必须在问题本身中描述具体的问题,并包括重现问题的有效代码。你需要共享你的表模式。在共享之前,尝试谷歌sql联接。Dave Zych是对的,我们需要查看你的数据库。)ase结构。我没有外键…有点像一个noob,不确定外键的概念是什么(有趣…我会找一个教程来解释我的想法。非常感谢!有趣…我会找一个教程来解释我的想法。非常感谢!1000个互联网给你先生!祝你圣诞快乐!1000个互联网给你先生!祝你圣诞快乐!太棒了!谢谢小费兄弟!太棒了!谢谢小费兄弟!