Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344

    MySQL: condizione su campo di tabella correlata

    Ho 2 tabelle:

    tab_carote
    --------------
    id_carota
    nome

    tab_sequenze
    ------------------
    id_sequenza
    id_carota
    stato ('richiesta','approvata','respinta')


    Per ogni carota posso avere un numero infinito di sequenze. Considerando per selezionare ognuna:

    Codice PHP:
    SELECT nome FROM tab_carote AS c INNER JOIN tab_sequenze AS s ON c.id_carota s.id_carota 
    Vorrei filtrare per tutte quelle in cui TUTTI gli stato sono uguali a 'approvata'.

    Se faccio così:

    Codice PHP:
    SELECT nome FROM tab_carote AS c INNER JOIN tab_sequenze AS s ON c.id_carota s.id_carota WHERE stato 'approvata' 
    Mi prende anche quelle che hanno un solo stato uguale ad 'approvata'.

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select c.nome from tab_carote as c
    inner join (
    		select id_carota
    		from tab_sequenze
    		group by id_carota
    		having sum(stato='approvata') = count(*)
    ) as s
    on c.id_carota = s.id_carota

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    1,344
    Funziona! Grazie!

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.