Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: mysql Select from

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957

    mysql Select from

    Ciao, come faccio a selezione + risultati da più tabelle=

    tipo:
    SELECT * FROM table1 AND table2 WHERE 1...

  2. #2

    Re: mysql Select from

    [supersaibal]Originariamente inviato da GoldEmish
    Ciao, come faccio a selezione + risultati da più tabelle=

    tipo:
    SELECT * FROM table1 AND table2 WHERE 1... [/supersaibal]
    SELECT * FROM table1, table2 WHERE 1...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    SELECT * FROM tabella1
    JOIN tabella2 ON [condizione di join]
    WHERE....

    NB: se su diverse tabelle hai uguali nomi di campo per evitare ambiguità devi fare tipo:

    SELECT tabella1.campo, tabella2.campo....

    se vuoi evitare di scrivere tutto il nome della tabella puoi fare:

    SELECT a.campo, b.campo....
    FROM tabella1 AS a
    JOIN tabella2 AS b
    ON...
    WHERE...

    -
    La condizione di join è difficile spiegartela senza avere un esempio concreto.. ma, ad esempio, può essere l'uguaglianza tra due campi delle due tabelle.. metti che in una tabella hai un elenco di articoli, con i lroo id, e in un'altra un elenco di ordini con un campo che tramite id individua l'articolo... se vuoi mettere insieme le tabelle per sapere, ad esempio, quanti ordii ha avuto un articolo.. la consizione di join sarà qualcosa tipo:
    ON a.id = b.id_articolo

    :cauz:

  4. #4

    Re: Re: mysql Select from

    [supersaibal]Originariamente inviato da piero.mac
    SELECT * FROM table1, table2 WHERE 1...

    [/supersaibal]


    in effetti non avevo pensato che potrebbe non aver bisogno di un JOIN ma solo di prendere più dati da + tabelle in un colpo solo

    vabbè.. l'insonnia.. cmq ora sa una cosa in più, anche se magari non gli serve

  5. #5

    Re: Re: Re: mysql Select from

    [supersaibal]Originariamente inviato da }gu|do[z]{®©


    in effetti non avevo pensato che potrebbe non aver bisogno di un JOIN ma solo di prendere più dati da + tabelle in un colpo solo

    vabbè.. l'insonnia.. cmq ora sa una cosa in più, anche se magari non gli serve [/supersaibal]
    Guarda che quello che ho postato corrisponde ad un INNER JOIN... stile theta, mentre quello postato da te e' un LEFT JOIN stile ANSI-92.

    Resta da vedere quello che tu hai anticipato cioe' le condizioni dell'unione.

    Altrimenti per unire risultati esiste anche UNION o la creazione di tabelle temporanee...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    sì, ma senza condizione di JOOIN si può usare anche per prelevare dati diversi e non legati tra loro.. o no?

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    957
    ragazzi non mi funzia....

    ho scritto questo:
    Codice PHP:
    [riga54$result mysql_query("SELECT * FROM table1, table2 WHERE 1"$db);
    [
    riga55$row mysql_fetch_array($result); 
    E mi da errore :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in index.php on line 55


    perchè? :master:

  8. #8
    [supersaibal]Originariamente inviato da }gu|do[z]{®©
    sì, ma senza condizione di JOOIN si può usare anche per prelevare dati diversi e non legati tra loro.. o no? [/supersaibal]
    Ma che senso avrebbe selezionare dati da due tabelle non in relazione tra di loro? E senza condizioni?

    Verrebbe fuori un prodotto cartesiano di uno contro tutti con la inner join. con la forma ansi (left join) sei obbligato a mettere una clausula ON. Le tabelle relazionate fanno parte dello stesso db e sono solo una normalizzazione di dati. Sono di fatto un db unico dove relazioni errati o mancanti possono rendere l'intero db inconsistente.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    [supersaibal]Originariamente inviato da GoldEmish
    ragazzi non mi funzia....

    ho scritto questo:
    Codice PHP:
    [riga54$result mysql_query("SELECT * FROM table1, table2 WHERE 1"$db);
    [
    riga55$row mysql_fetch_array($result); 
    E mi da errore :
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in index.php on line 55


    perchè? :master: [/supersaibal]
    metti la segnalazione di errore con DIE. non e' valido il resource id number.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    [supersaibal]Originariamente inviato da piero.mac
    Ma che senso avrebbe selezionare dati da due tabelle non in relazione tra di loro? E senza condizioni?

    Verrebbe fuori un prodotto cartesiano di uno contro tutti con la inner join. con la forma ansi (left join) sei obbligato a mettere una clausula ON. Le tabelle relazionate fanno parte dello stesso db e sono solo una normalizzazione di dati. Sono di fatto un db unico dove relazioni errati o mancanti possono rendere l'intero db inconsistente.

    [/supersaibal]
    sì ok.. io uso sempre JOIN per esplicitare meglio...

    in effetti senza condizioni viene un prodotto cartesiano

    pensavo ad un modo di rispiarmiarsi due selct.. ma in effetti mi sa che non è fattibile

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.