Visualizzazione dei risultati da 1 a 3 su 3

Discussione: problemi query

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    1,056

    problemi query

    Ciao a tutti,
    ho dei problemi a ricavare i dati dopo aver fatto una query con due JOIN.

    $query = mysql_query("SELECT * FROM (tab1 LEFT JOIN tab2 ON tab1.id=tab2.id_mostra) LEFT JOIN tab3 ON tab2.id_artista=tab3.id_artista WHERE anno='$anno' ORDER BY anno DESC ");
    echo mysql_error();


    Come caspita faccio a recuperar il campo id della tab1 ???

    Se faccio sempliceemnte $id=$result['id'] non funge, forse perchè anche nelle altre tabelle c'è un campo id...e si confonde???

  2. #2
    perche non provi la query con un programma front-end (es MySql-Front oppure tramite web con phpMyAdmin), in modo da vedere l'errore?
    Ci sono 10 tipi di persone al mondo: chi capisce il binario e chi no.
    Feriebisognometro [ ][ ][ ][ ][__]
    k3k.it.

  3. #3

    Re: problemi query

    [supersaibal]Originariamente inviato da Bregovic
    Se faccio sempliceemnte $id=$result['id'] non funge, forse perchè anche nelle altre tabelle c'è un campo id...e si confonde???
    [/supersaibal]
    devi dare un alias ai campi con nome uguale. L'ideale sarebbe attribuire nomi univoci nelle tabelle che devi raggruppare.

    I campi con lo stesso nome che estrai, saranno quelli della tabella ultima estratta.

    Se ti interessasse solo l'id potresti spostare la tabella interessata come ultima nell'ordine di estrazione. Per esempio: interessa il campo id di tab1:

    SELECT tab2.*, tab3.*, tab1.*

    Ritroverai tutti i campi di tab1 e sovrascritti da tab1 quelli precedenti con nome uguale. Nota: non servono le parentesi per le JOIN.

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

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.