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

    [SQL] Sono obbligatorie due query?

    codice:
    Tabella1: progetti
    ------------
    idprogetto
    idresponsabile
    idresponsabilecliente
    descrizione
    [...]
    
    Tabella2: persone
    ------------
    id
    nome
    cognome
    [...]
    Il problema e' questo. Con una sola query trovare il nome dei due responsabili che saranno per forza di cose due persone diverse. Con una LEFT JOIN sono in grado di unire le due tabelle d'accordo ma come faccio a cercare i due nomi in un colpo solo? E' possibile senza subquery? E con le subquery invece come si fa? Grazie

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Prova questa query:

    SELECT PROGETTI.*, P1.NOME AS NOME1, ... , P2.NOME AS NOME2, ...
    FROM (PROGETTI INNER JOIN PERSONE AS P1 ON PROGETTI.IDRESPONSABILE=P1.ID) INNER JOIN PERSONE AS P2 ON PROGETTI.IDRESPONSABILE=P2.ID

    Non l'ho provata, quindi non garantisco che funzioni.

  3. #3
    Utente di HTML.it L'avatar di dalang
    Registrato dal
    May 2003
    Messaggi
    252
    Forse non ho capito il problema:

    ma devi trovare i responsabili di un progetto di cui conosci l'id?

    non basta che fai left join e nella WHERE metti idprogetto=$k

    SELECT N.nome FROM progetti AS P left join persone AS N on (P.idresponsabile = N.id) WHERE P.idprogetto=$idcercato

  4. #4
    Ho corretto qualcosina ed adattandola alla situazione reale così funziona

    codice:
    SELECT progetti.descrizione,
           p1.cognome AS resp_interno,
           p2.cognome AS resp_cliente,
           p3.cognome AS resp_cliente_finale
    FROM progetti
    LEFT JOIN persone AS p1 ON progetti.kid_persone_responsabile = p1.kid
    LEFT JOIN persone AS p2 ON progetti.kid_persone_riftecn = p2.kid
    LEFT JOIN persone AS p3 ON progetti.kid_persone_riftecn_finale = p3.kid
    x dalang
    Con la tua query non riesco ad ottenere il nome del Responsabile Cliente.

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.