Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [php/mysql] errore query su 2 table

    Ciao a tutti

    Io ho la necessita di controllare se, in 2 tabelle uguali ma con nomi diversi, nel campo foto_num c'e' il numero della foto uguale a quello della variabile $foto_num

    in poche parole io faccio la query su 2 table 2 voglio vedere se nel campo foto_num della tabella schede c'e' il valore $foto_num, e voglio vedere se nel campo foto_num della tabella schede_temp c'e' il valore $foto_num, per farlo ho provato questa query:
    codice:
    $query = "SELECT foto_num FROM schede, schede_temp WHERE schede.foto_num ='$foto_num' OR schede_temp.foto_num='$foto_num'";
    $result_id = safe_query($query);
    $print = mysql_result($result_id, 0);
    echo $print;
    exit;
    in teoria questa query mi dovrebbe ristituire 1 se il campo è presente? ma mi da questo errore:
    codice:
    # Query fallita : errorno=1052
    # error=Column: 'foto_num' in field list is ambiguous
    # query=SELECT foto_num FROM schede, schede_temp WHERE schede.foto_num ='123' OR schede_temp.foto_num='123'
    che devo fare? io ho messo schede.foto_num e schede_temp.foto_num, xche mi dice che foto_num è ambiguo?

  2. #2
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    prova cosi':

    codice:
    $query = "SELECT schede.foto_num FROM schede INNER JOIN 
    schede_temp ON schede.foto_num = schede_temp.foto_num WHERE schede.foto_num ='$foto_num'";
    cosi' ti estrae foto_num dalla tabella schede se e solo se esiste in entrambe le tabelle il campo foto_num con valore $foto_num
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  3. #3
    Perche si trova in entrambe le tabelle. Devi definire anche la tabella da associare al campo.

    SELECT schede.foto_num, schede_temp.foto_num ....

    Con beneficio di inventario sul resto della query pero'....


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

  4. #4
    che intendi con:

    Con beneficio di inventario sul resto della query pero'....
    c'e' qualche schifezza?

  5. #5
    Originariamente inviato da f.domenella
    che intendi con:
    c'e' qualche schifezza?
    Diciamo che con un OR in una JOIN non sei al massimo.... molto meglio fare due query, una per tabella. Ed e' pure piu' veloce oltre che sicura nel risultato che vuoi ottenere.

    Tieni presente che con JOIN (qualunque tipo, e "from tabella1, tabella2" lo e') viene creata una tabella temporanea su cui vengono posati i risultati su cui fare poi la ricerca. Se cerchi semplicemente un dato non relazionato ad altra tabella molto meglio fare due query specie se su quel campo hai pure un indice.


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

  6. #6
    grazie in fatti è meglio fare due query

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 © 2024 vBulletin Solutions, Inc. All rights reserved.