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

    [mysql] query complicate

    ragazzi! devo risolvere un problema a dir poco arduo...
    dunque, non so neanche da dove cominciare a spiegare!
    devo fare una ricerca all'interno di un database.
    ho due tabelle:
    - una (locali) con i dati di alcuni locali
    - e un'altra (campi) nella quale memorizzo alcune caratteristiche di ciascun locale

    qui sotto vi mostro uno schema semplificato delle due tabelle:


    tabella locali

    id * nome * località
    1 * locale1 * roma
    2 * locale2 * firenze


    tabella campi

    id * id_locale * campo * valore
    1 * 1 * musica * techno
    2 * 1 * ingresso * a pagamento
    3 * 2 * musica * house


    la domanda è: come faccio *ad esempio* a trovare tutti i locali di firenze che suonino musica house ?
    mi fate un esempio di query da usare ??

    bel problemino eh! mi si sta incastrando il cervello a pensarci.. confido in voi!
    grazie!
    Meglio essere folle per proprio conto che saggio con le opinioni altrui.
    F. Nietzsche

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    codice:
    SELECT locali.nome FROM locali
    INNER JOIN campi ON campi.id_locale = locali.id
    WHERE locali.località = "firenze" AND campi.valore = "house"

    ti conviene codificare le caratteristiche, per velocizzare la ricerca
    think simple think ringo

  3. #3
    hmm.. che vuol dire codificare le caratteristiche ? :master:
    Meglio essere folle per proprio conto che saggio con le opinioni altrui.
    F. Nietzsche

  4. #4
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    creare una tabella caratteristiche con id e descrizione; nella tabella campi dovrai inserire id_caratteristiche, e nn più le singole descrizioni...
    think simple think ringo

  5. #5
    grazie marketto.. credo di aver capito.. ma non posso codificare le caratteristiche perchè queste tabelle servono anche per altri scopi e mi servono così come sono.. sempre se ho capito veramente quello che dici!

    inoltre mi sono accorto che il problema è più complicato di quanto pensavo...
    tornando al post iniziale, cosa succede se devo specificare più caratteristiche ?
    ad esempio come faccio a trovare tutti i locali di roma che facciano musica techno e con ingresso a pagamento ?
    Meglio essere folle per proprio conto che saggio con le opinioni altrui.
    F. Nietzsche

  6. #6
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    Originariamente inviato da carlowoo85
    grazie marketto.. credo di aver capito.. ma non posso codificare le caratteristiche perchè queste tabelle servono anche per altri scopi e mi servono così come sono.. sempre se ho capito veramente quello che dici!
    ok



    Originariamente inviato da carlowoo85
    inoltre mi sono accorto che il problema è più complicato di quanto pensavo...
    tornando al post iniziale, cosa succede se devo specificare più caratteristiche ?
    ad esempio come faccio a trovare tutti i locali di roma che facciano musica techno e con ingresso a pagamento ?
    devi specificare tutto nel WHERE, usando AND e/o OR.
    http://dev.mysql.com/doc/mysql/en/Lo...s.html#IDX1244
    think simple think ringo

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.