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

    Relazionare due tabelle tramite una terza che contiene le relazioni

    Scusate, mi sono fatto aiutare per costruire le tabelle e ora anche per relazionarle con la query.. sono proprio pessimo. Ma perchè mi metto a fare cose che non conosco quando ho pochissimo tempo per finire il lavoro? Mah! Spero vogliate graziarmi e assistermi.

    Ho tre tabelle.
    PERSONE||relazioni persona-lavoro||LAVORI

    Ogni persona può fare più di un lavoro.

    La tabella di relazione contiene solo due campi ossia l'id persona e l'id lavoro e ogni sua riga esprime una relazione.
    Tralaltro nella tabellla di relazione i campi id si chiamano con lo stesso nome che compaiono all'interno delle altre due tabelle. Quindi ho:

    Persone {id_persona, nome, cognome}

    Relazioni {id_persona, id_lavoro}

    Lavoro {id_lavoro, spiegazione}

    Come estraggo le persone che fanno un certo lavoro?
    All'uomo non verrà mai tanto male quanto dall'uomo.

  2. #2
    ciao
    quando hai delle tabelle relazionate la SELECT deve essere di tipo JOIN (INNER O LEFT).
    La sintassi tipica di una JOIN è

    SELECT p.nome, p.cognome
    FROM Persone as p
    LEFT JOIN Relazioni as r
    ON r.id_persona = p.id_persona
    LEFT JOIN Lavoro as l
    ON l.id_lavoro = r.id_lavoro


    Ovvio che puoi aggiungere anche delle condizoni di filtro con la clausola WHERE.

    Ciao
    Ginko75
    Il progresso scientifico ? www.cartagodelendaest.it

  3. #3
    Cavolo, proprio non riesco... non capisco dove sbaglio... ho seguito le guide su html.it ma niente.
    Ho provato la query (con i giusti riferimenti) che mi hai dato tu e non va.

    Ora ho provato a modificarla ma non va ancora... che sbaglio? Provo a postarla. Grazie per gli aiuti.

    codice:
    		$query = "SELECT *, if(pseudonimo = '', nome, pseudonimo) as ordine,
    		FROM $tabella_artisti 
    		RIGHT JOIN $tabella_artistiarti
    			ON $tabella_artisti.id_artista = $tabella_artistiarti.id_arte
    		LEFT JOIN $tabella_arti
    			ON $tabella_arti.id_arte = $tabella_artistiarti.id_arte
    		ORDER BY ordine";
    L'error_reporting(E_ALL) restituisce "85".

    Le tabelle sono:
    $tabella_artisti {id_artista, nome, ...}
    $tabella_artistiarti (relazione) {id_artista, id_arte}
    $tabella_arti {id_arte, spiegazione}
    All'uomo non verrà mai tanto male quanto dall'uomo.

  4. #4
    UP! ^^
    All'uomo non verrà mai tanto male quanto dall'uomo.

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.