Query Mysql - non restituisce tutti i risultati

di il
18 risposte

Query Mysql - non restituisce tutti i risultati

Salve,

ho problemi a risolvere questa query:

Tutti i film in italiano.

io lo fatto in questo modo:

select language.name, film.title
from language
inner join film on film.film_id = language.language_id
where language.name = 'Italian';


funziona però mi restituisce soltanto uno solo id, ma non tutti i record. Come mai?

name || title
italian cicco & franco
... ....
... ....

Come mai non escono altri record, visto che le due tabelle sono piene??

18 Risposte

  • Re: Query Mysql - non restituisce tutti i risultati

    Avendo il database si potrebbe risponderti con più certezza. Ci provo lo stesso:

    La prima cosa che mi salta all'occhio è che mi pare molto motlo strano che film.film_id sia relazionato con language.language_id
    Ma, come già detto, senza conoscere le tabelle...
  • Re: Query Mysql - non restituisce tutti i risultati

    Tabella : film
    Questi sono le colonne:

    film_id
    title
    description
    release_year
    language_id
    original_language_id
    rental_duration
    retal_rate
    length
    replacement_cost
    rating
    special_fetatures
    last_update

    tabella : language

    Questi sono le colonne:
    language_id
    name
    last_update
  • Re: Query Mysql - non restituisce tutti i risultati

    Perchè metti in join film_id con language_id e non questi ultimi?
  • Re: Query Mysql - non restituisce tutti i risultati

    Quindi avevo intuito giusto.

    Il JOIN va impostato sul campo language_id delle due tabelle:
    select language.name, film.title
    from language
    inner join film on film.language_id = language.language_id
    where language.name = 'Italian'
    
  • Re: Query Mysql - non restituisce tutti i risultati

    Ho provato ma non mi restituisce niente.
    Come mai?
  • Re: Query Mysql - non restituisce tutti i risultati

    Questo db si può scaricare?
  • Re: Query Mysql - non restituisce tutti i risultati

    Questo db lo trovi in mysql workbench.
    Sono tabelle standard di mysql
  • Re: Query Mysql - non restituisce tutti i risultati

    Non le ho scaricate ma quella query funziona. Controlla il contenuto delle tabelle.
  • Re: Query Mysql - non restituisce tutti i risultati

    Il nome e le colonne delle tabelle corrispondono.
    Provate a scaricare le tabelle di defualt di mysql workbencth, e provate.
    Non mi restituisce nulla.
  • Re: Query Mysql - non restituisce tutti i risultati

    robot ha scritto:


    Il nome e le colonne delle tabelle corrispondono.
    Provate a scaricare le tabelle di defualt di mysql workbencth, e provate.
    Non mi restituisce nulla.
    Non ho MySQL, ma sia la sintassi che la logica della query è corretta.
    Hai verificato che il valore 'Italian' sia esistente?
    Se cambi la condizione con:
    WHERE language.name LIKE 'Ital%'
    cosa succede?
  • Re: Query Mysql - non restituisce tutti i risultati

    robot ha scritto:


    Il nome e le colonne delle tabelle corrispondono.
    Provate a scaricare le tabelle di defualt di mysql workbencth, e provate.
    Non mi restituisce nulla.
    Magari, per qualche motivo, quelle tabelle sono vuote ...

    Prova ad eseguire una

    SELECT * FROM film

    e poi una

    SELECT * FROM language

    e mostra qui il risultato delle due query
  • Re: Query Mysql - non restituisce tutti i risultati

    È banale.
    select distinct(language_id) from film;
    anzi più chiaramente
    select film.language_id,language.name,count(*) from film
    join language
    on film.language_id=language.language_id group by 1
    ... il mitico sakila!!!! quante ore passate insieme al forum percona!!!!

    PS per inciso in mysql i confronti sono caseless, quindi puoi usare ='italian'. Sono i nomi delle tabelle a poterlo non essere (soprattutto se myisam, diventano file materiali del filesystem. su windows saranno senza case, ma su *nix sì)
  • Re: Query Mysql - non restituisce tutti i risultati

    Bravo, con sakila.

    Però non voglio fare il conteggio utilizzando count.

    Ma voglio solo, facendo questa query.

    Tutti i film in italiano.

    Adesso mi scrivo anche io a percona.

    Grazie
  • Re: Query Mysql - non restituisce tutti i risultati

    Per caso hai degli esercizi con soluzioni +m2+ per esercitarmi con le query
Devi accedere o registrarti per scrivere nel forum
18 risposte