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

    [sql] ottimizzare query per doppioni

    Ho una tabella casa cosi' fatta:

    idcasa proprietario
    1 1
    2 2
    3 3
    4 3
    5 3
    6 4
    7 5
    8 5
    9 6

    L'obiettivo e' trovare le case dove i proprietari hanno piu' di un appartamento

    la query dovrebbe tornare

    3
    4
    5
    7
    8
    in quanto il proprietario 3 ha tre appartamenti, il proprietario 5 ha due appartamenti.

    Io ho trovato la seguente soluzione

    codice:
    SELECT distinct D1.idcasa, D1.proprietario as p FROM casa D1, casa D2 WHERE D1.proprietario=D2.proprietario and D1.proprietario= '$idproprietario '
    Questo prevede l'aiuto di php in quanto esternamente si fa una query che preleva gli idproprietario che si danno in pasto alla sottoquery:

    Codice PHP:
    $query_ext mysql_query("select proprietario from casa");
    while(
    $row mysql_fetch_array($query_ext)){
      
    $idproprietario $row[proprietario];
      
    $query_int mysql_query("SELECT distinct D1.idcasa, D1.proprietario as p FROM casa D1, casa D2 WHERE D1.proprietario=D2.proprietario and D1.proprietario= '$idproprietario'")

    L'obiettivo e' fare solo una query al database...
    come si puo' fare?
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

  2. #2
    codice:
    SELECT *, COUNT(*) AS tot
    FROM casa
    GROUP BY proprietario
    HAVING tot > 1
    ti dara' l'elenco dei proprietari con piu' di una ricorrenza

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    select idcasa from casa where proprietario in
    (select proprietario from (select proprietario, count(*) as numcase from casa group by proprietario having numcase > 1) as c1)

  4. #4
    grazie mille!!!
    Trinity
    http://www.vocabolariodidio.it
    http://www.giulianodelena.com
    trova la tua casa per le vacanze
    http://www.salento.lecce.it

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.