Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 15 su 15

Discussione: INNER JOIN complesso

  1. #11
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Ciao stabi..stavo provando il tuo esempio..sicuramente è la via giusta..
    io non ci capisco molto purtroppo ma l'ho provata..senza risultati!
    Ho fatto anche altre prove.. ma niente!!!
    questa è la mia query con il tuo codice:

    codice:
    $tot = 1000;	# il numero di prodotti da visualizzare
    $i = 0;		# variabile che servirà da indice (che incrementeremo)
    $query = "SELECT a.nomear as nomear1,b.nomear as nomear2 ,c.nomear as nomear3,d.nomear as nomear4,e.nomear as nomear5,A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,DATE_FORMAT(A.datap, '%d-%m-%Y')AS data_it,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			FROM prodotti INNER JOIN artisti a
                ON (artp = a.idar ), left join artisti b  ON (artp2 = b.idar ), left join artisti c  ON (artp3 = c.idar ), left join artisti d  ON (artp4 = d.idar ), left join artisti e  ON (artp5 = e.idar )
    			WHERE  A.idcat like 'trax%' && (A.supp = 'vinyl 12''''' || A.supp = 'double vinyl 12''''' || A.supp = 'vinyl 10''''' || A.supp = 'vinyl 7''''')
    			ORDER by A.datap desc
    			LIMIT 0,$tot";
    $result = mysql_query($query) or die(mysql_error());
    $output = 'tot='.mysql_num_rows($result);
    while($prodotti = mysql_fetch_array($result))
    {
    
    	$output .='&artista'.$i.'='.$prodotti['nomear1']. " ".urlencode($prodotti['divarp1']). " ".$prodotti['nomear2']. " ".urlencode($prodotti['divarp2']). " ".$prodotti['nomear3']. " ".urlencode($prodotti['divarp3']). " ".$prodotti['nomear4']. " ".urlencode($prodotti['divarp4']). " ".$prodotti['nomear5'];
    	$i++;
    }
    echo $output;

    mi da questo errore:
    Errore di sintassi nella query SQL vicino a 'left join artisti b ON (artp2 = b.idar ), left join artisti c ON (artp3 = c.id' linea 3

  2. #12
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    ti ho avvisato , sono andato a memoria e non posso provarlo ma il concetto è quello.
    prova a cercare la sintassi giusta sul manuale di mysql

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    Originariamente inviato da stabi
    Ciao, l'inner join con l'or non è proprio corretto
    dovresti fare una cosa tipo (la sintassi è a memoria)
    Codice PHP:
    select prodotti.*,a.nomear as nomear1,b.nomear as nomear2 ,c.nomear as nomear3 ...
    from prodotti inner join artisti  a 
                ON 
    (artp a.idar ), left join artisti b  ON (artp2 b.idar ), left join artisti c  ON (artp3 c.idar ), ....... 
    Codice PHP:
    select prodotti.*,a.nomear as nomear1,b.nomear as nomear2 ,c.nomear as nomear3 ...
    from prodotti inner join artisti as  
                ON 
    (artp a.idar left join artisti as b  ON (artp2 b.idar )  left join artisti as c  ON (artp3 c.idar ), ....... 

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    niente da fare..è da ieri che provo ma senza risultati..

  5. #15
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    234
    Sto provando in questo modo..
    errori non ce ne sono..
    se non che non mi stampa gli artisti artp2 / artp3 ecc..

    codice:
    $query = "SELECT b.nomear as nomear1,c.nomear as nomear2 ,d.nomear as nomear3,e.nomear as nomear4,f.nomear as nomear5,A.artp,A.artp2,A.artp3,A.artp4,A.artp5,A.idpr,A.eticp,A.titp,A.recei,DATE_FORMAT(A.datap, '%d-%m-%Y')AS data_it,A.imgcop,A.supp,A.przp,A.idcat,A.sottp,A.divarp1,A.divarp2,A.divarp3,A.divarp4,B.idar,B.nomear
    			from prodotti as a inner join artisti as b
                ON (artp = b.idar) left join artisti as c  ON (artp2 = b.idar ) left join artisti as d  ON (artp3 = b.idar ) left join artisti as e  ON (artp4 = b.idar ) left join artisti as f  ON (artp5 = c.idar )
    artp2,artp3,artp4 e artp5 si trovano anch'essi nella tabella prodotti insieme ad artp e nel codice qua sopra mi sa che lista cercando in altre tabelle alias c/d ecc...

    Qualcuno riesce a capire come fare?

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