Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Leggere query SQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684

    Leggere query SQL

    COme posso stampare a video il risultato di una query SQL?

    Esempio:
    SQL = ("SELECT film.* FROM film WHERE idfilm in (SELECT genere.* FROM genere WHERE sottocategoria = 20)")

    Come posso leggere cosa mi restituisce la sottoquery,
    mi serve per capire la sintassi corretta da usare nella clausola WHERE
    'in' oppure '='

    Grazie.

    p.s. questa sintassi contiene degli errori ma vorrei capire
    come posso leggere la query.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    ("SELECT film.* FROM film WHERE idfilm in (SELECT sottocategoria FROM genere WHERE sottocategoria = 20)")

    Questa è la query esatta! ma quando vado a stampare il recordset con il ciclo
    mi appare solo un record... ma i recordset della tabella 'FILM' sono maggiori di uno.

    Mi stampa solo il recordset con il numero indicato nella clausola WHERE della sotto query, ovvero il record 20?!

  3. #3
    sql si comporta MOLTO bene! esegue esattamente quello che tu gli hai detto di fare. rileggi con attenzione la sottoquery...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Ho scritto questo in notte fonda dopo un'estenuante giornata!!!

    Ho due tabelle relazionate, quando vado ad interrogarLE devo filtrare solo i campi con una determianta sottocatagoria.

    TABELLE:
    FILM (vari campi -> idfilm 'contatore')
    GENERE (filmid 'intero lungo' e sottocategoria)

    COn la seguente query dovrei visualizzare solo i record con sottocategoria '20'

    codice:
    (SELECT film.* FROM film WHERE idfilm in (SELECT filmid FROM genere WHERE sottocategoria = 20))
    Credo che così dovrebbe andare!!! L'ho provata e funziona.
    Ripeto era la stanchezza dovuta al lavoro prolungato da ieri mattina a notte fonda!

  5. #5
    Utente di HTML.it L'avatar di wallrider
    Registrato dal
    Apr 2003
    Messaggi
    2,755
    non ho capito come sono relazionate le tabelle :master:
    RIP Cicciobenzina 9/11/2010

    "Riseminaciceli, i ceci nell'orto"

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Sono arrivato alla QUERY finale
    che interroga 3 tabelle:

    codice:
    SQLFILTRO = ("SELECT filmid FROM genere WHERE sottocategoria IN (SELECT idsottocategoria FROM sottocategoria WHERE categoria IN (1,2)) AND sottocategoria = 9")
    SQL = ("SELECT * FROM film WHERE idfilm IN ("& SQLFILTRO &") ORDER BY "& campo &" ASC")
    i campi delle tabelle sono così relazionati:
    FILM.idfilm (1) -> GENERE.filmid (molti)
    SOTTOCATEGORIA.idsottocategoria (1) -> GENERE.sottocategoria (molti)

    Usando una query JOIN a tre tabelle, ho il problema della visualizzazione multipla dello stesso film, visto che nella tabella GENERE ci sono nel campo filmid tanti idfilm uguali quante sono le sottocategorie (Genere: azione,avventura,horror,drammatico, ecc); un film contiene più generi, es:

    FILMID: 1 SOTTOCATEGORIA: 2
    FILMID: 1 SOTTOCATEGORIA: 6
    FILMID: 1 SOTTOCATEGORIA: 7
    FILMID: 2 SOTTOCATEGORIA: 2
    FILMID: 2 SOTTOCATEGORIA: 3
    FILMID: 2 SOTTOCATEGORIA: 9

    Qualcuno potrebb e dirmi come posso evitare la moltiplicazione dello stesso record, ho provato con l'aggregazione DISTINCT o clausola GROUP BY, con risultati deludenti.

  7. #7

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    ACCESS, visto che ad esclusione dell'id tutti gli altri campi sono diversi.

  9. #9
    Originariamente inviato da dreaman74
    ACCESS, visto che ad esclusione dell'id tutti gli altri campi sono diversi.
    non capisco il nesso

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    684
    Uso ACCESS. Scusami ho quotato in modo errato.

    Questa è la query che ho usato precedentemente a quella con le sottoquery postata poco sopra.
    codice:
    SQL = ("SELECT film.*,genere.*,sottocategoria.*") &_
    (" FROM film LEFT OUTER JOIN (sottocategoria RIGHT OUTER JOIN genere ON sottocategoria.idsottocategoria = genere.sottocategoria)") &_
    (" ON film.idfilm = genere.filmid") &_
    (" WHERE sottocategoria.categoria IN(1,2) ORDER BY film.idfilm DESC")
    Vengono mostrati in modo doppio, ho provato con la funzione DISTINCT o con la clausola GROUP, ma l'unico campo uguale è FILM.idfilm e GENERE.filmid.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.