【问题标题】:How to write query that join the 2 tables?如何编写连接 2 个表的查询?
【发布时间】:2022-01-19 13:20:43
【问题描述】:

使用 mysql。数据库 sakila。 有两张表电影和语言。电影表有两个外键 language_id 和 original_language_id 连接到语言中的 language_id 主键。 所以我想要的是学习如何从这样的结构中获取电影,它的语言和原始语言。

enter image description here

查询将以其语言显示电影,没有原始语言。

SELECT 
    film.title, film.description, film.release_year, language.*
FROM
    film
        INNER JOIN
    language ON film.language_id = language.language_id;

【问题讨论】:

标签: mysql sql


【解决方案1】:

如果我理解正确,您想选择语言不是原始语言的电影。我认为 where 子句可以达到目的。

SELECT 
    film.title, film.description, film.release_year, language.*
FROM
    film INNER JOIN language 
         ON film.language_id = language.language_id;
    where film.language_id <> film.original_language_id 

或者,如果您只想显示两种语言的语言信息,您可以按照以下查询之一(使用子查询):

SELECT  film.title, film.description, film.release_year, 
        (select name from language l where l.language_id=film.language_id) language_name,
        (select name from language l where l.language_id=film.original_language_id) original_language_name
FROM film 

【讨论】:

    【解决方案2】:

    也许你可以试试这个

    SELECT a.title, a.description, a.release_year, b.language_id, b.name, b.last_update
    FROM
    film a
    INNER JOIN
    language b ON a.language_id = b.language_id;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2016-10-16
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多