Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    15

    [MySQL] - Query Annidate

    Ciao ragazzi,frequento questo sito da un po di tempo ma nn avevo mai postato nulla..
    Mi servirebbe un favore..!!

    Ho un DB con tre tabelle :

    Velisti : id,nome,età,...
    Barche : id,numero,marca,...
    Prenotazioni : idVelisti, idBarche , codicePrenotazione.

    non viene specificata la Primary key delle prenotazioni,quindi penso sia composta dai primi due id..

    mi servirebbe la query che ti ritorna il nome del velista che ha affittato TUTTE le barche.. grazie mille!!

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    non è molto chiaro ma potrebbe essere

    codice:
    select v.nome 
    from Velisti as v
    where 
    count(select id 
          from Barche)=count(select idBarche 
                             from   Prenotazioni 
                             where  idVelisti=v.id
                             group by idBarche)
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    15
    guarda la richiesta più precisa è :
    ho una tabella con 5 barche, devo cercare un velista presente nella tabella prenotazioni che ha affittato tutte e 5 le barche..

    grazie cmq per la risposta..!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    15
    guarda la richiesta più precisa è :
    ho una tabella con 5 barche, devo cercare un velista presente nella tabella prenotazioni che ha affittato tutte e 5 le barche..

    grazie cmq per la risposta..!

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    e la query l'hai provata?
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    15
    guarda sinceramente il database nn ce l'ho,era per un amico la richiesta..
    cmq penso che o andava bene,o cmq la logica era giusta e quindi andavano fatte al massimo 2-3 modifiche..grazie cmq per l'aiuto!

  7. #7
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select p.idvelisti,v.nome,count(distinct(p.idbarche)) as quante
    from prenotazioni as p
    inner join velisti as v
    on v.id = p.idvelisti
    group by idvelisti
    having quante = (select count(id) from barche)

  8. #8
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    io una query come quella che ho scritto prima non l'ho mai fatta perchè sinceramente non ne ho mai avuto bisogno, ma mi chiedo a questo punto se avrebbe potuto funzionare, vista quella proposta da nicola....

    son partito dal presupposto molto semplce

    codice:
    select * from tabella where 1=1
    e ovviamente i valori da comparare erano 2 numeri restituiti dal count....

    adesso la domanda nasce spontanea ( diogene docit ) ...

    ho commesso degli errori sintattici ( count(...) = count(...) )o altro?

    grassie della delucidazione
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  9. #9
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Il senso della query è quello, cioè cercare i velisti per i quali il numero di barche diverse coincide con il numero totale di imbarcazioni, quindi è sufficiente fare un count(distinct()) delle stesse.

    Gli errori sintattici sono sul count(select) anzichè select count e sull'having necessario per confrontare il numero di barche diverse con la tabella barche.

  10. #10
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ottimo!

    anche oggi qualcosa di buono l' ho portato a casa

    grazie!
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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.