Sql 连接两个或多个表

Sql 连接两个或多个表,sql,Sql,我已经编写了一些代码来合并两个表。显示的值为空 +----------+--------------+-----------------------------------------------+-------------+----------+----------+------+----------+ | Movie_ID | Release_year | Movie_Title | Duration | Genre_

我已经编写了一些代码来合并两个表。显示的值为空

+----------+--------------+-----------------------------------------------+-------------+----------+----------+------+----------+ | Movie_ID | Release_year | Movie_Title | Duration | Genre_ID | Actor_ID | Role | Movie_ID | +----------+--------------+-----------------------------------------------+-------------+----------+----------+------+----------+ | 10001 | 1997 | Titantic | 190 minutes | 40001 | NULL | NULL | NULL | | 10002 | 1998 | Shakesphere in Love | 123 minutes | 40002 | NULL | NULL | NULL | | 10003 | 1999 | American Beauty | 122 minutes | 40003 | NULL | NULL | NULL | | 10004 | 2000 | Gladiator | 155 minutes | 40004 | NULL | NULL | NULL | | 10005 | 2001 | A beautiful Mind | 135 minutes | 40004 | NULL | NULL | NULL | | 10006 | 2002 | Chicago | 113 minutes | 40005 | NULL | NULL | NULL | | 10007 | 2003 | The Lord of the Rings: The return of the King | 201 minutes | 40006 | NULL | NULL | NULL | | 10008 | 2004 | Million Dollar Baby | 132 minutes | 40007 | NULL | NULL | NULL | | 10009 | 2005 | Crash | 112 minutes | 40008 | NULL | NULL | NULL | | 10010 | 2006 | The Departed | 151 minutes | 40009 | NULL | NULL | NULL | | 10011 | 2007 | No Country for Old Men | 122 minutes | 40009 | NULL | NULL | NULL | | 10012 | 2008 | Slumdog Millionaire | 120 minutes | 40008 | NULL | NULL | NULL | | 10013 | 2009 | The Hurt Locker | 131 minutes | 40009 | NULL | NULL | NULL | | 10014 | 2010 | The King\s speech | 118 minutes | 40010 | NULL | NULL | NULL | | 10015 | 2011 | The Artist | 100 minutes | 40011 | NULL | NULL | NULL | | 10016 | 2012 | Argo | 120 minutes | 40012 | NULL | NULL | NULL | | 10017 | 2013 | 12 Years a Slave | 134 minutes | 40004 | NULL | NULL | NULL | | 10018 | 2014 | Birdman or The Unexpected Virtue of Ignorance | 119 minutes | 40003 | NULL | NULL | NULL | | 10019 | 2015 | Spotlight | 129 minutes | 40008 | NULL | NULL | NULL | | 10020 | 2016 | Moonlight | 111 minutes | 40013 | NULL | NULL | NULL | | 10021 | 2017 | The Shape of Water | 123 minutes | 40012 | NULL | NULL | NULL | | 10022 | 2018 | Green Book | 130 minutes | 40011 | NULL | NULL | NULL | +----------+--------------+-----------------------------------------------+-------------+----------+----------+------+----------+
我希望输出是所有数据都显示在一个表上。

您的问题在这里:
a.Movie\u ID=b.Actor\u ID
。电影永远不会是演员。改用电影演员表的电影ID:

SELECT * 
FROM databaseoscars.movie m
LEFT JOIN databaseoscars.`movie cast` mc ON mc.movie_id = m.movie_id;
在MySQL和MariaDB中,还可以使用
USING
子句:

SELECT * 
FROM databaseoscars.movie m
LEFT JOIN databaseoscars.`movie cast` mc USING (movie_id);

分别为星号使用别名,例如
a.*、b.*
。也许您需要
完全外部联接
。顺便说一句,连接条件似乎有偏差:Movie_ID vs.Actor_ID您应该始终在使用的DBMS中标记SQL问题。从非标准名称分隔符中,我得出结论:是MySQL还是MariaDB?哪个版本?顺便说一句:我会避免那些需要引用的名字。您可以调用表
movie\u cast
,从而去掉引号。你们应该使用像m这样的助记符别名来表示电影,而不是像a、b、c这样的通用名称。别名将增强而不是降低查询的可读性。我试图删除引号,但别名出现错误。这是因为
movie cast
是两个单词。您必须将表从
movie cast
重命名为
movie\u cast
。这是我的建议。@KabirdevRamana。如果这回答了你的问题,并且你认为这是最好的答案,你应该接受它。这个答案很有帮助,并且它按照预期工作。非常感谢。
SELECT * 
FROM databaseoscars.movie m
LEFT JOIN databaseoscars.`movie cast` mc USING (movie_id);