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

Discussione: [mysql] natural join

  1. #1

    [mysql] natural join

    Ciao ragazzi! Avrei bisogno di una particolare query che credo sia la natural join, ma dato che nn sono riuscito a risolvere mi rivolgo a voi:

    Ho due tabelle nel db: "utenti" e "commenti".

    nella tabella commenti ci sono questi campi: from, to, testo
    mentre in utenti i seguenti: id, username.

    Ora, il commento viene salvato nella tabella commenti e nel campo "from" salvo l'ID dell'utente che ha scritto. In poche parole devo andare a ripescare lo username di quell'utente sapendo la sua ID in un'unica query.

    me la sapete scrivere? grazie ciao!

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858

    Re: [mysql] natural join

    Originariamente inviato da flacchio
    ... In poche parole devo andare a ripescare lo username di quell'utente sapendo la sua ID in un'unica query.

    me la sapete scrivere? grazie ciao!
    la domanda accetta solo questo tipo di risposta:
    codice:
    SELECT username FROM utenti
    WHERE id = 2;

    se invece volevi collegare le due tabelle, allora la query che ti serve è di questo tipo (nn l'ho provata, ma dovrebbe andare ):
    codice:
    SELECT utenti.username,commenti.testo FROM utenti 
    INNER JOIN commenti ON commenti.from = utenti.id 
    WHERE utenti.id = 2;
    think simple think ringo

  3. #3
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    Ad esempio:

    SELECT utenti.username, commenti.to, commenti.testo FROM utenti, commenti WHERE utenti.id = commenti.from

    Li tira fuori tutti. Se ne vuoi uno in particolare devi solo aggiungere la condizione nella clausola WHERE (es. AND utenti.id = 1)



    P.S. Non ricordo bene, ma non mi sembra sia questa una natural join.
    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

  4. #4
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    Oops sono arrivato tardi
    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

  5. #5
    wow ragazzi! che tempestività!
    ora provo

  6. #6
    mhmm non riesco a capire maledizione!
    il fatto è che poi se faccio:
    Codice PHP:
    while($row mysql_fetch_array($query)){

    echo 
    $row[''];


    Non so come mettere quel $row...

  7. #7
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    O usi il nome del campo "esteso" (tabella.campo) oppure usi un alias nella query del tipo SELECT tabella.campo AS pippo...

    ...e recuperi i dati con $row['pippo']

    Di nuovo
    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

  8. #8
    Codice PHP:
    $query mysql_query("SELECT utenti.username, commenti.to, commenti.testo FROM utenti, commenti WHERE utenti.id = commenti.from and commenti.to='".$_GET['id']."' ORDER BY data ASC");


    while(
    $row mysql_fetch_array($query)){
    echo 
    $row['commenti.testo'];

    mi dice che l'argomento non è valido...
    "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\WM\www\inoob\form_commenti.php on line 6"



    PS Hey emyl, ma 10 in binario sarebbe due? Forse la ho capita ohhh

  9. #9
    ora sclero davvero!!!!

    In pratica non mi funziona nemmeno una banalissima query di questo tipo:
    Codice PHP:
    $query mysql_query("SELECT * FROM commenti WHERE to='".$_GET['id']."'")or die(mysql_error()); 
    Come cavolo è possibile!?!? l'errore che mi restituisce è:

    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'to='7'' at line 1

  10. #10
    Utente di HTML.it L'avatar di Emyl
    Registrato dal
    Jul 2004
    Messaggi
    250
    Se l'id è numerico non devi racchiuderlo tra apici... ed in ogni caso anche nella clausola WHERE devi usare la notazione tabella.campo


    Visto carina la signature?
    "Ci sono 10 tipi di persone, quelli che capiscono i numeri binari...
    e quelli che non li capiscono."

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.