Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从2个表检索数据的SQL查询_Sql - Fatal编程技术网

从2个表检索数据的SQL查询

从2个表检索数据的SQL查询,sql,Sql,你能帮我解决一些我脑子里想不出来的简单问题吗 我有两张桌子: 表1=电影 表2=演员 假设我有3部电影:《独立日》、《水库狗》和《阿甘正传》 我还有7位演员:威尔·史密斯、杰夫·戈德布鲁姆、昆汀·塔伦蒂诺、迈克尔·马德森、蒂姆·罗斯、汤姆·汉克斯、罗宾·赖特·潘 比方说,我想运行一个查询,它将为我带来史密斯和杰夫·戈德布鲁姆将在哪里出现的正确电影。查询应该是什么样子 这应该很容易,但我现在觉得自己很笨 提前谢谢 您应该使用一个与演员和电影匹配的表。将其称为AppearsIn,并有两列Movi

你能帮我解决一些我脑子里想不出来的简单问题吗

我有两张桌子:

  • 表1=电影
  • 表2=演员
假设我有3部电影:《独立日》、《水库狗》和《阿甘正传》

我还有7位演员:威尔·史密斯、杰夫·戈德布鲁姆、昆汀·塔伦蒂诺、迈克尔·马德森、蒂姆·罗斯、汤姆·汉克斯、罗宾·赖特·潘

比方说,我想运行一个查询,它将为我带来史密斯和杰夫·戈德布鲁姆将在哪里出现的正确电影。查询应该是什么样子

这应该很容易,但我现在觉得自己很笨


提前谢谢

您应该使用一个与
演员
电影
匹配的表。将其称为
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个互联网给你先生!祝你圣诞快乐!太棒了!谢谢小费兄弟!太棒了!谢谢小费兄弟!