Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    33

    Left join ma con selezione

    Ciao a tutti
    Ho due tabelle
    La prima e' una semplice anagrafica, nella seconda (goals) memorizzo i gol fatti nelle varie settimane
    Data una certa settimana (es: idSettimana=22) , vorrei selezionare tutti i calciatori con meno di 30 anni che NON hanno fatto gol (e che quindi non sono presenti nella tabella gols con idSettimana=22) ma magai possono aver fatto gol nella settimana con idSettimana=55 o altro

    calciatori
    ----------
    idCalc
    nome
    eta
    punti

    goals
    ----------
    idGoal
    idSettimana
    idCalc

    Sto lavorando su questa query ma non mi restituisce nessuno dato.

    SELECT calciatori.idCalc,calciatori.nome , calciatori.eta, goals.idSettimana, goals.idGoal
    FROM calciatori LEFT JOIN goals ON goals.idCalc = calciatori.idCalc
    WHERE
    calciatori.eta<30 AND
    goals.idSettimana=22
    goals.idGoal IS NULL

    se tolgo "goals.idSettimana=22" sembra funzionare ma mi restituisce tutti i giocatori che non hanno fatto gol ma in assoluto e non per la sola settimana 22

  2. #2
    codice:
    SELECT 
       C.idCalc,calciatori.nome , C.eta, G1.idSettimana, G1.idGoal, G2.idSettimana, G2.idGoal 
    FROM 
       calciatori C1
       LEFT JOIN goals G1 ON G1.idCalc = C.idCalc 
       LEFT JOIN goals G2 ON G2.idCalc = C.idCalc 
    WHERE 1=1
       AND C.eta<30 
       AND (G1.idSettimana=22 AND G1.idGoal IS NULL)
       AND (G2.idSettimana=30 AND NOT G2.idGoal IS NULL)
    prova, anche se non ho ben capito cosa vuoi 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 © 2024 vBulletin Solutions, Inc. All rights reserved.