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

    SQL - SELECT su più tabelle

    Come si fa una SELECT estraendo i dati da più tabelle????

    Devo estrarre e visualizzare i dati delle colonne C1, C2, C3 della tabella TAB1 e al colonna C1 della tabella TAB2

    Come impostare la SELECT su questo esmpio???

    SELECT TAB1.C1, TAB1.C2, TAB1.C3, TAB2.C1 FROM TAB1, TAB2 WHERE TAB1.C1 <= 1000 ORDER BY TAB2.C1

    Può essere corretto?
    Dany

  2. #2
    in questo modo moltiplichi tutte le righe di tab1 per quelle di tab2 ci deve essere un qualche tipo di relazione
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Utente bannato
    Registrato dal
    Jan 2002
    Messaggi
    852
    Ho usi le JOIN ma le tabelle devono essere collegate oppure fai delle SELECT annidate, ti avviso che quest'ultima soluzione è presente solo per lo standard sql, mysql non permette di farlo...

    CIAO!!!!

  4. #4

    Grazie mille

    Grazie mille per i consigli ... poi ieri, tra le mille ricerche che ho fatto e un attimo di ricordi mi è venuto in mente.

    Le due tabelle hanno la colonna C1 in comune, quindi ho fatto una JOIN

    grazie mille di nuovo.

    Ecco come ho risolto

    SELECT * FROM TAB1, TAB2 WHERE TAB1.C1 = TAB2.C1 AND C1 <= 1000 ..... etc.

    Ciao
    Dany

  5. #5

    Con tre tabelle

    E se invece dovessi estrarre dati da tre tabelle correlate l'una all'altra da un unico campo?

    Quello che ho provato io è stato:

    "SELECT * FROM tab1, tab2, tab3 WHERE tab1.c1 = tab2.c1 AND tab1.c1 = tab3.c1 AND tab2.c1 = tab3.c1 AND c1 >= 100 AND c1 <= 200"

    Non mi riesce, mi da come errore:

    Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
    [Oracle][ODBC][Ora]ORA-00918: column ambiguously defined


    Da cosa può dipendere?
    Dany

  6. #6
    l'errore è negli ultimi 2 parametri c1 essendo presente nelle 3 tabelle la clausola where non sa a chi fai riferimento
    sostituisci gli ultimi 2
    codice:
    SELECT * 
      FROM tab1
         , tab2
         , tab3 
     WHERE tab1.c1 = tab2.c1 
       AND tab1.c1 = tab3.c1 
       AND tab2.c1 = tab3.c1 
       AND tab1.c1 >= 100 
       AND tab1.c1 <= 200
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche 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.