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

    [mysql] - aiuto per una query

    Ciao a tutti
    vorrei riuscire a fare questa cosa con un unica query, senza ricorrere a uno script ma non so se è possibile:

    immaginiamo un DB di uno store, con le classiche tabelle ordini e prodotti.
    la tabella ordini ha il campo id_prodotto che la relaziona a prodotti
    la tabella prodotti ha una colonna che chiamo code, che puo valere 0 o 1.
    gli ordini possono essere composti sia da prodotti che hanno il campo code a 0, che da altri col capo code = 1.

    vorrei fare una query che prenda da ordini solo quegli ordini composti da prodotti il cui campo code = 1. se un ordine, ad esempio, è composto da 5 prodotti di cui anche solo uno ha il campo code = 0, allora va scartato.

    non so se sono stato chiaro

    grazie
    Manuel

    View my profile on LinkedIn
    Ubertini: amo solo te!

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Raggruppi per id_ordine e verifichi se il numero di prodotti che lo compongono è pari al numero di prodotti che hanno il campo code = 1

    codice:
    select o.id_ordine
    from ordini as o
    inner join prodotti as p
    on o.id_prodotto = p.id
    group by o.id_ordine
    having count(o.id_prodotto) = sum(if(p.code = 1,1,0))

  3. #3
    funziona alla perfezione grazie 1000

    Manuel

    View my profile on LinkedIn
    Ubertini: amo solo te!

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.