Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    problemi con INNER JOIN

    aiuto, sto impazzendo con questi INNER JOIN, proprio non riesco a capirli!

    devo fare questa query, ma fatta con gli INNER JOIN:

    Codice PHP:
    "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.*, a_gruppo.* 
            FROM a_login, a_anagrafica, a_preferenze_ana, a_gruppo 
            WHERE a_anagrafica.id_anagrafica = a_login.id_anagrafica 
            AND a_login.id_login = a_preferenze_ana.id_login 
            AND a_login.id_login = a_gruppo.id_login  
            AND a_anagrafica.id_anagrafica = '
    $utente'"
    Codice PHP:
    "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.*, a_gruppo.* 
    FROM a_login, a_anagrafica, a_preferenze_ana, a_gruppo 
    INNER JOIN a_anagrafica ON a_anagrafica.id_anagrafica = a_login.id_anagrafica 
                            AND a_login.id_login = a_preferenze_ana.id_login 
    INNER JOIN a_login ON a_login.id_login = a_gruppo.id_login  
    WHERE a_anagrafica.id_anagrafica = '
    $utente'"

  2. #2

    Re: problemi con INNER JOIN

    Prova cosi'
    Codice PHP:
    "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.*, a_gruppo.* 
    FROM (a_preferenze_ana, a_gruppo)
    INNER JOIN a_anagrafica 
    ON a_anagrafica.id_anagrafica = a_login.id_anagrafica 
    AND a_login.id_login = a_preferenze_ana.id_login 
    INNER JOIN a_login 
    ON a_login.id_login = a_gruppo.id_login  
    WHERE a_anagrafica.id_anagrafica = '"
    .$utente."'"

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    grazie, l'ho inserito ma mi da questo errore:

    Unknown column 'a_login.id_anagrafica' in 'on clause'

    eppure c'è la colonna id_anagrafica nella tabella a_login o forse quando dice in 'on clause' significa un'altra cosa?

  4. #4
    credo che hai invertito gli inner join, infatti al primo serve il secondo.. prova così:

    "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.*, a_gruppo.*
    FROM (a_preferenze_ana, a_gruppo)
    INNER JOIN a_login
    ON a_login.id_login = a_gruppo.id_login
    INNER JOIN a_anagrafica
    ON a_anagrafica.id_anagrafica = a_login.id_anagrafica
    AND a_login.id_login = a_preferenze_ana.id_login
    WHERE a_anagrafica.id_anagrafica = '".$utente."'";
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da djhell
    credo che hai invertito gli inner join, infatti al primo serve il secondo.. prova così:

    "SELECT a_login.*, a_anagrafica.*, a_preferenze_ana.*, a_gruppo.*
    FROM (a_preferenze_ana, a_gruppo)
    INNER JOIN a_login
    ON a_login.id_login = a_gruppo.id_login
    INNER JOIN a_anagrafica
    ON a_anagrafica.id_anagrafica = a_login.id_anagrafica
    AND a_login.id_login = a_preferenze_ana.id_login
    WHERE a_anagrafica.id_anagrafica = '".$utente."'";
    Ho appena risolto in questo modo:

    Codice PHP:
    $sql "SELECT a_anagrafica.*, a_login.*, a_preferenze_ana.*, a_gruppo.* 
            FROM a_anagrafica 
            INNER JOIN a_login 
            ON a_anagrafica.id_anagrafica = a_login.id_anagrafica 
            LEFT JOIN a_preferenze_ana 
            ON a_login.id_login = a_preferenze_ana.id_login
            LEFT JOIN a_gruppo 
            ON a_login.id_login = a_gruppo.id_login
            WHERE a_anagrafica.id_anagrafica = '"
    .$utente."'"
    comunque per curiosità ora provo anche la tua grazie

  6. #6
    ecco, fammi sapere se andava la mia, non avendo modo di provarla non so mica
    ...::: DESIDERARE E' UMANO :::...
    ...::: POSSEDERE E' DIVINO :::...
    ...::: HAVE A NICE DAY :::...
    (¯`·.¸¸.->ĐĮ ĦΞŁŁ<-.¸¸.·`¯)
    http://www.djhellclub.com

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    l'ho provata, andava bene anche la tua
    certo che questi JOIN ti squagliano il cervello proprio non riesco ad assimilarli, ogni volta che li affronto è una lotta all'ultima sinapsi.

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.