Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38

Discussione: [SQL]Ricerca tabelle

  1. #1

    [SQL]Ricerca tabelle

    Ciao a tutti sto giocherellando un pò coi database...ma ho un dilemma (?)...
    Ho un databse cosi formato :

    codice:
    ;====================================================================================
    ;
    ;                                 Seconda Tabella "Maschi"
    ;
    ;====================================================================================
    
    ;   Nome        |Cognome           |Indirizzo           | Città       | Numero      |
    ;   ----------------------------------------------------|-------------|-------------|
    ;   Alfio       |Bianchi           |esempio             |Roma         | 0000        |
    ;   Vittorio    |Rossi             |esempio             |Napoli       | 1111        |
    ;   Ettore      |Rosa              |esempio             |Torino       | 2222        |
    
    
    ;====================================================================================
    ;
    ;                                 Seconda Tabella "Femmine"
    ;
    ;====================================================================================
    
    
    ;   Nome        |Cognome           |Indirizzo           | Città       | Numero      |
    ;   ----------------------------------------------------|-------------|-------------|
    ;   Erika       |Bianchi           |esempio             |Roma         | 0000        |
    ;   Vittoria    |Rossi             |esempio             |Napoli       | 1111        |
    ;   Francesc    |Rosa              |esempio             |Torino       | 2222        |
    Come potete vedere nell'esempio ho 2 tabelle : "Maschi" e "Femmine"
    Ora vorrei fare una ricarca in queste due tabelle, la ricerca è per nome, per esempio vorrei trovare tutti i nomi che al loro interno hanno la stringa "itt", in questo caso dovrebbe uscire: Vittoria e Vittorio.
    Ora il dilemma è come fare questa ricerca tra 2 Tabelle?...La so fare solo per 1 con questo codice :
    codice:
    SELECT * FROM Maschi WHERE Nome LIKE 'itt%';
    Come posso ricercare in tutte è due le tabelle ?
    Ho provato cosi :
    codice:
    SELECT * FROM Maschi,Femmine WHERE Nome LIKE 'itt%';
    Ma mi da questo errore :
    codice:
    Error: ambiguous column name: Name
    Grazie per il vostro prezioso aiuto =P

  2. #2
    SELECT * FROM Maschi WHERE Nome LIKE '%itt%'
    UNION
    SELECT * FROM Femmine WHERE Nome LIKE '%itt%'


    that easy!

  3. #3
    Wow, nulla di più semplice...provo subito

    P.S. Visto che sono 5 tabelle in verità, non c'è qualche cosa di più sbrigativo in termine di codice? Altrimentri avrei una stringa lunghissima =P

    Ciao grazie per l'aiuto!

  4. #4
    sbrigativo per te, non per il server... lavora, pigrone!

  5. #5
    Beh per ora è fattibile, ma se aumentano le tabelle, come si fa?
    Non penso che in un database grande si va avanti di UNION

    Pensi ci sia un altra alternativa?

    Ciao!

  6. #6
    ma cosa devi fare esattamente? ad esempio (ricalcando il tuo) avere due tabelle "maschi" e "femmine" è di per sé poco performante, non dare la colpa alla UNION!

    sii più chiaro

  7. #7
    E' un database dove faccio lo storage di radio/tv e siti sul web...allora ho fatto 5 tabbelle, ognuna rappresenta un continente, in ogni tabelle c'è il nome della radio/tv, link al sito, genere link trasmissione e nazionalità.

    Come organizzeresti un database cosi?

    Ciao!

  8. #8
    hai detto

    Originariamente inviato da Sp4C3Death
    allora ho fatto 5 tabbelle, ognuna rappresenta un continente
    ma prima avevi detto

    Originariamente inviato da Sp4C3Death
    ma se aumentano le tabelle, come si fa?
    aumentiamo i continenti? 10, 15, 1000 continenti?

    comunque, piedi per terra! fa' una tabella unica, e aggiungi la colonna che indichi il continente!

  9. #9
    Non aumentano i continenti =P...ma protrei creare altre tabelle.
    Se aggiungo un altra colonna aumenterei solamente la rindondanza dei dati, mi ritroverei per esempio 2.000 colonne che contengono sempre "America".

    Cerco una soluzione pulità e veloce, non voglio sporcare inutilmente il db

    Ciao!

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Veramente Optime di ha datto la risposta corretta e meglio di quella non c'è.
    Il db l'hai già sporcato tu.

    Quando i dati sono omogenei è un grave errore di progettazione volerli distribuire su più tabelle.
    Sarebbe come voler gestire <n> tabelle per le Fatture ognuna delle quali contiene un tipo di fattura differente.

    Al contrario, mantenerli su un unica tabella, aggiungendo un campo discriminatorio (continente) diventa più semplice ed efficiente.

    Certo, se tu poi vuoi andare avanti ad forza di UNION... vedi tu.


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.