Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926

    Select combinata tra due tabelle

    ho un database con due tabelle:

    tabProdotti:
    id
    user
    prodotto
    prezzo
    categoria

    e

    tabUtenti:
    id
    user
    stato

    Vorrei fare una select che, ad esempio, prenda dalla
    tabella tabProdotti tutti i record della categoria xxx
    dove lo user ha uno stato yyyy
    immagino che dovrei mettere in relazione le due tabelle
    ma come posso fare?
    spero di essere riuscito a spiegarmi...
    grazie
    luca
    www.intheweb.it - Internet solutions

  2. #2

  3. #3
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    ho provato questa query:

    codice:
    SELECT * FROM messaggi INNER JOIN utenti ON messaggi.utente = utenti.user WHERE utenti.tipo = 'gold' ORDER BY id DESC
    ma mi viene restituito questo errore:
    codice:
    Microsoft OLE DB Provider for ODBC Drivers error '80004005'
    [Microsoft][ODBC Microsoft Access Driver] The specified field 'id' could refer to more than one table listed in the FROM clause of your SQL statement.
    /index.asp, line 13
    in pratica, devo estrarre i record dalla tabella messaggi dei soli utenti del livello gold,
    i dati degli utenti (tra cui il campo tipo) è nella tabella utenti.
    Da quanto capisco dall'errore, mi dice che il campo non è univoco, e questo è ovvio in quanto ci sono molti messaggi di uno stesso utente, mentre nella tabella utenti c'è un solo record con quel nome utente.
    Come posso realizzare la query che mi serve?
    grazie
    luca
    www.intheweb.it - Internet solutions

  4. #4
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    up..
    www.intheweb.it - Internet solutions

  5. #5
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    devi ordinare per id, ma probabilmente sia utenti che messaggi hanno una colonna id...
    quale delle due ti serve per ordinare?
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  6. #6
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    infatti hanno entrambe una colonna id come chiave primaria.
    ma non posso mettere in relazione questi campi del record.
    Quello che voglio fare io è diverso:

    nella tabella prodotti ho una serie di record: vorrei
    estrarre solo quelli in cui l'utente che lo ha postato
    è di un livello X e il dato del livello dell'utente è in un'altra tabella.

    Tornando all'esempio di inizio post:

    tabProdotti:
    id
    user
    prodotto
    prezzo
    categoria

    e

    tabUtenti:
    id
    user
    stato

    ci sono molti prodotti, di cui ad es 10 dell'utente MARCO,
    5 dell'utente FABIO e 20 dell'utente GIOVANNI (colonna user di tabProdotti)
    io voglio estrarre solo i prodotti degli utenti PRO, e questo lo devo
    andare a leggere nella colona STATO di tabUtenti.
    Questo è il tipo di relazione che devo stabilire tra le due tabelle.

    Grazie per il tuo aiuto
    luca
    www.intheweb.it - Internet solutions

  7. #7

  8. #8
    codice:
    SELECT
       elenco_campi
    FROM
       tabProdotti TP JOIN tabUtenti TU
       ON TP.user=TU.user
    WHERE
       TU.stato = 'PRO'
    that easy!

  9. #9
    Utente di HTML.it L'avatar di lucalicc
    Registrato dal
    Sep 2002
    Messaggi
    6,926
    cosa intendi con TP e TU?
    è un modo pe rinominare il nome delle tabelle del database?
    grazie
    luca
    www.intheweb.it - Internet solutions

  10. #10
    si chiamano ALIAS di tabella

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.