Visualizzazione risultati 1 fino 5 di 5

Discussione: Aiuto non riesco a capire come fare questa query

  1. #1
    danu23 non è connesso Neofita
    Data registrazione
    17-04-2015
    Messaggi
    1

    Unhappy Aiuto non riesco a capire come fare questa query

    Aiuto sono uno studente che ha bisogno, devo svolgere un esercizio in php . Ho due tabelle t_libro(id_libro,id_autore,nomelibro) e t_autore (id_autore,autore). Devo far eseguire una query che restituisca il nome degli autori che hanno venduto almeno 2 libri. Come faccio?

  2. #2
    Guest

    Predefinito

    Ciao,

    devi usare la group by.

    Questa è una bozza dalla quale puoi partire per ottenere ciò che vuoi.

    Codice:
    select table.id_autore from 
    (select t.id_autore, count(id_libro) as count_ from t_libro l group by t.id_autore) table
    where 
    table.count_ >= 2
    Ciao,
    Matteo

  3. #3
    Guest

    Predefinito

    Coi dati forniti la risposta alla tua domanda è non puoi.
    Non puoi perchè tu fornisci due tabelle una relativa ai libri ed una relativa agli autori, ma nessun dato relativo alle vendite.

    Se invece la domanda fosse quella di trovare glli autori che hanno scritto almeno due libri l'approccio sarebbe quello di mytvserieshd ma che è sbagliato nella costruzione in quanto
    - le condizioni per le funzioni di aggregazione si impostano con HAVING e non con WHERE
    - nella query proposta andavano raggruppati i risultati (GROUP BY).

  4. #4
    Guest

    Predefinito

    Se gliela scrivevo già con l'having magari, essendo uno studente, non riesciuva a capire la logica dietro la query che deve fare....

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da mytvserieshd Visualizza messaggio
    Se gliela scrivevo già con l'having magari, essendo uno studente, non riesciuva a capire la logica dietro la query che deve fare....
    No, perdonami.
    Se una cosa è sbagliata è sbagliata e basta.
    Usare WHERE con le funzioni di aggregazione anzichè HAVING è sbagliato. Non è questione di logica.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •