-1

Using mysql. Database sakila. Having two tables films and language. Film table has two foreign keys language_id and original_language_id that connects to language_id primary key in language. So what I want is to learn how to get film, it's language and original language from such structure.

enter image description here

The query will display film in its language, without original.

SELECT 
    film.title, film.description, film.release_year, language.*
FROM
    film
        INNER JOIN
    language ON film.language_id = language.language_id;
John
  • 11
  • 3
  • take a read of https://stackoverflow.com/questions/6912336/mysql-join-multiple-joins-on-the-same-table - you can join the `language` table twice - just use an alias `... inner join language as original_language on ...` – Ian Kenney Jan 19 '22 at 13:26

2 Answers2

0

If I understood correctly, you want to select the films having language other than original language. I think a where clause will serve the purpose.

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 

Or, If you just want to display language information for both the language you can follow one of below query (using subquery):

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 
0

Maybe you can try this

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;
Faizawa
  • 88
  • 8