Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123

    [MySQL] SQL necessito di alcuni chiarimenti

    Ciao a tutti,

    Sono un novizio dell'SQL e di MySQL.

    Ho imparato a creare tabelle ed inserirvi i dati, compresi gli aggiornamenti con UPDATE.
    Ma ci sono alcune cose (direi fondamentali) che non mi sono affatto chiare.

    Il mio libro, crea queste tabelle (dopo aver utilizzato le prime 2 forme di normalizzazione)

    User
    codice:
    +---------+---------+---------+---------------+-------+-------+--------+----------+
    | user_id   | nome     | cognome| indirizzo          | citta   | stato  | codice  | telefono   |
    +---------+---------+---------+---------------+-------+-------+--------+----------+
    | Mdavis    | michele | davis      | 7503 linksway  | fxpnt  | MN     |  55114  | 414-3528 |
    +---------+---------+---------+---------------+-------+-------+--------+----------+
    libri
    codice:
    +----------+-------------------------+-------+
    | title_id     | title                             | pages |
    +----------+-------------------------+-------+
    |        1     | Linux in a nutshell           |   112  |
    |        2     |Classic shell scripting        | 576    |
    +----------+-------------------------+-------+
    autori
    codice:
    +-----------+----------------+
    | autori_id    | autori              |
    +-----------+----------------+
    |         1      | Ellen siever      |
    |         2      | Aaron weber    |
    |         3      | Arnold robbins  |
    |         4      | Nelson beebe   |
    +-----------+----------------+
    libri_autori
    codice:
    +----------+-----------+
    | title_id     | autori_id   |
    +----------+-----------+
    |        1     |         1     |
    |        1     |         2     |
    |        2     |         3     |
    |        2     |         4     |
    +----------+-----------+
    vendite
    codice:
    +---------+-------------------------+-------+
    | user_id   | titolo                            | data  |
    +---------+-------------------------+-------+
    | Mdavis   | Linux in a nutshell           | sd 34 |
    | Mdavis   | Classic shell scripting       | sd 34 |
    +---------+-------------------------+-------+
    NOTA: non badate alle date, le ho inserite indicativamente..

    Mi chiedo.. dai dati di vendita, e precisamente al titolo di un libro.. che query scrivo per stampare l'autore di quel titolo?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Ma la struttura della tabella vendite l'hai inventata tu?
    Non ha senso ripetere i titoli dei libri, sono dati ridondanti. Userai il title_id.

  3. #3
    una semplice JOIN tra libri_autori e autori, avendo fisso l'id libro

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da nicola75ss
    Ma la struttura della tabella vendite l'hai inventata tu?
    Non ha senso ripetere i titoli dei libri, sono dati ridondanti. Userai il title_id.
    Grazie per la risposta.

    No, non l'ho inventata io questa. Era proprio sul libro.

    Ok..ma supponiamo io debba leggere gli autori di un libro che è stato venduto, che query potrei creare? Come risalgo a quegli autori?

    Grazie.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Come ti ha suggerito optime devi ricorrere ai join.
    Un buon punto di partenza è questo:

    http://database.html.it/guide/lezion...so-delle-join/

    Nella query che ti ho scritto tieni presente che group_concat() è una funzione proprietaria di mysql, non è SQL standard. Servirà per unire in un'unica riga i vari autori associati a un singolo libro.

    codice:
    select v.titolo,group_concat(a.autori) as autori
    from vendite as v
    inner join libri as l on v.titolo = l.title
    inner join libri_autori as la on la.title_id = l.title_id
    inner join autori as a on a.autori_id = la.autori_id
    group by l.title_id
    Giusto per curiosità si può sapere che libro stai consultando?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Chiedo scusa ma non avevo visto il post di optime, probabilmente abbiamo postato insieme o quasi.

    Ora leggo quella lezione, grazie.

    Giusto per curiosità si può sapere che libro stai consultando?
    Certamente. Il libro l'avevo acquistato perchè volevo imparare PHP, e così ho comprato il libro che contenesse entrambi (anche se avrei fatto meglio comprarli separatamente). Il libro in questione è Questo.

    Già che ci sono, chiedo anche altro..
    Non vorrei andare OT, comunque dell'argomento fa parte anche MySQL.. devo scrivere un gestionale in Java, interagendo con MySQL. Il mio libro di Java non dice una parola su MySQL..ho letto per la rete dei driver JDBC, tuttavia mi piacerebbe trovare una guida, o quantomeno un articolo fatto bene che spieghi come utilizzare queste ultime.. potete darmi una mano?

    Grazie per l'interesse!!

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non conosco il libro che stai studiando.
    Certo che è strano che suggerisca l'utilizzo del titolo nella tabella vendite. Spero che per la tabella autori non consigli di usare un unico campo per nome e cognome.

    Per quel che riguarda la tua richiesta relativa a java è meglio che chieda nell'apposita sezione.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Ho un'altra domanda da porre.

    La tabella che memorizza id autori e id libri, a cosa può servirmi? Come può essere utilizzata?

    Grazie a tutti!^^

  9. #9
    parli della libri_autori?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2009
    Messaggi
    1,123
    Originariamente inviato da optime
    parli della libri_autori?
    Si esattamente!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.