Php mysql在一个查询上进行多个连接

Php mysql在一个查询上进行多个连接,php,mysql,Php,Mysql,我在一个数据库中有4个表,我需要将四个表连接在一起,但我不能再连接两个表 $query = ' SELECT movie_title,genre_label,movie_year,director_name,movie_genre,movie_director,movie_actor FROM general LEFT JOIN genre ON movie_genre = genre_id AND general LEFT JOIN movie_directors ON mo

我在一个数据库中有4个表,我需要将四个表连接在一起,但我不能再连接两个表

$query = '
SELECT
   movie_title,genre_label,movie_year,director_name,movie_genre,movie_director,movie_actor
FROM
   general LEFT JOIN genre ON movie_genre = genre_id AND
   general LEFT JOIN movie_directors ON movie_director = director_id
WHERE
   general.movie_genre = genre.genre_id AND
   general.movie_director = movie_directors.director_id
ORDER BY
  movie_year';
我的浏览器显示此错误:

Unknown column 'general' in 'on clause'

请帮助我,谢谢

您不必在联接之间插入和,也不必重复您正在查询的表。 您的查询应如下所示:

$query = '
SELECT
movie_title,genre_label,movie_year,director_name,movie_genre,movie_director,movie_actor
FROM
  general 
  LEFT JOIN genre ON movie_genre = genre_id 
  LEFT JOIN movie_directors ON movie_director = director_id
ORDER BY
  movie_year';
它不起作用

SELECT movie_title,genre_label,movie_year,director_name,movie_genre,movie_director,movie_actor
FROM
   general 
   LEFT JOIN genre ON general.movie_genre = genre.genre_id
   LEFT JOIN movie_directors ON general.movie_director = movie_directors.director_id
ORDER BY
  movie_year';
试试这个:

SELECT
movie_title,genre_label,movie_year,
director_name,movie_genre,movie_director,movie_actor
FROM general 
LEFT JOIN genre ON general.movie_genre = genre.genre_id 
LEFT JOIN movie_directors ON general.movie_director = movie_directors.director_id
ORDER BY movie_year
您的JOIN/WHERE语法不正确。在您的情况下不需要WHERE子句。此外,在SELECT和ORDER BY语句中使用表别名指定列名也是一种很好的做法


注:以上查询语句基于问题中提供的信息。如果OP在问题中添加表结构信息,则查询可能会更改,因为不清楚第二次联接应发生在哪些表上。

提供表定义、一些示例数据和预期输出。这是完全错误的语法。一旦指定了联接,您不需要在WHERE子句中添加相同的条件。在您的情况下,您可以完全删除WHERE子句。@AbhikChakraborty请解释更多,我是一个新手确定查询是错误的。现在为您提供解决方案,我们需要具有列名的表结构。还有一些样本数据和你想要的结果。