使用sakila数据库连接MySql中的三个表
您好,我正在尝试使用sakila数据库连接三个表。它返回我提供的列名,但不返回任何信息。任何提示都将不胜感激使用sakila数据库连接MySql中的三个表,mysql,mysql-workbench,Mysql,Mysql Workbench,您好,我正在尝试使用sakila数据库连接三个表。它返回我提供的列名,但不返回任何信息。任何提示都将不胜感激 USE sakila; SELECT c.name 'Category Name' , f.title 'Film Title' , f.description 'Film Description' , f.release_year 'Release Year' FROM sakila.category c JOIN sakila.film_cat
USE sakila;
SELECT c.name 'Category Name'
, f.title 'Film Title'
, f.description 'Film Description'
, f.release_year 'Release Year'
FROM sakila.category c
JOIN sakila.film_category fc
ON c.category_id = fc.category_id
JOIN sakila.film f
ON f.film_id = fc.film_id
对观察到的行为最可能的解释是,数据库中没有满足条件的行 如果三个表中的任何一个为空,即包含零行,则查询将返回零行。如果没有“匹配”的行,例如,如果
film\u category
中的category\u id
列的值为空或与category
的category\u id
列中的值不匹配,则查询也将返回零行
首先,检查是否有任何表为空:
SELECT COUNT(1) FROM film ;
SELECT COUNT(1) FROM film_category ;
SELECT COUNT(1) FROM category ;
如果所有表都包含行,接下来检查是否有不匹配的行。例如:
SELECT fc.category_id
FROM film_category fc
LEFT
JOIN category c
ON c.category_id = fc.category_id
WHERE fc.category_id IS NULL
类似地,对于
film\u id
专栏。@spencer7593的答案非常好,可以作为调查连接可能出现问题的示例
针对您的情况,我对您的查询进行了分析,并收到了大量结果。在数据库副本中,是否有一个表因某种原因被清空?如果要命名列,则应使用
作为
关键字。虽然是可选的,但我敢肯定它在没有空格的情况下错误地解释了列名。@obsidyanage why?OP,您的查询很好,不可能返回没有行的列。mysql不是这样工作的。