Non sono sicuro che mi serva una subquery, cerco di spiegarmi con l'esempio in allegato.
Due " tabelle modelli e maglie la relazione 1-m un modello di maglia può avere vari colori associati.
Vorrei trovare in base a 2 colori i modelli di maglie a cui sono associati i colori, nell'esempio vorrei trovare i modelli che hanno il colore nero e rosso.
Ciao Dalogg
[Risolto] subquery
[Risolto] subquery
- Allegati
-
- maglieria.odb
- (12.79 KiB) Scaricato 91 volte
Ultima modifica di charlie il venerdì 6 luglio 2018, 7:53, modificato 2 volte in totale.
Motivazione: Aggiunta spunta verde
Motivazione: Aggiunta spunta verde
LibreOffice 6.0.5.2 (x64) su Windows 10
Re: subquery
Se non ho capito male ...
Codice: Seleziona tutto
SELECT "tb_colori"."cod_modello", "tb_colori"."colore", "tb_modelli"."Nome" FROM "tb_colori", "tb_modelli" WHERE "tb_colori"."cod_modello" = "tb_modelli"."cod_modello" AND ( "tb_colori"."colore" = 'nero' OR "tb_colori"."colore" = 'rosso' )
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: subquery
Ho sbagliato colori, volevo blu,rosso, però solo quei modelli che hanno entrambi i colori, nella mia tabella dovrebbe restituire navy e summer.charlie ha scritto:Se non ho capito male ...
Codice: Seleziona tutto
SELECT "tb_colori"."cod_modello", "tb_colori"."colore", "tb_modelli"."Nome" FROM "tb_colori", "tb_modelli" WHERE "tb_colori"."cod_modello" = "tb_modelli"."cod_modello" AND ( "tb_colori"."colore" = 'nero' OR "tb_colori"."colore" = 'rosso' )
Ciao Dalogg
LibreOffice 6.0.5.2 (x64) su Windows 10
Re: subquery
Oggi sono troppo pigro per cercare di metterle insieme :
Query1:
Query2:
Query finale:
Query1:
Codice: Seleziona tutto
SELECT "tb_colori"."cod_modello", "tb_modelli"."Nome" FROM "tb_colori", "tb_modelli" WHERE "tb_colori"."cod_modello" = "tb_modelli"."cod_modello" AND "tb_colori"."colore" = 'rosso'
Codice: Seleziona tutto
SELECT "tb_colori"."cod_modello", "tb_modelli"."Nome" FROM "tb_colori", "tb_modelli" WHERE "tb_colori"."cod_modello" = "tb_modelli"."cod_modello" AND "tb_colori"."colore" = 'blu'
Codice: Seleziona tutto
SELECT "Query1"."Nome", "Query1"."cod_modello" FROM "Query2", "Query1" WHERE "Query2"."cod_modello" = "Query1"."cod_modello"
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: subquery
Credo di essere riuscito ad aggregare le query in questo modo :
Codice: Seleziona tutto Espandi visuale
ho un solo dubbio che la query non sia tecnicamente corretta, non vorrei che il risultato ottenuto sia giusto ma casuale. Se hai tempo e voglia di darmi conferma della giustezza della query ti ringrazio in anticipo, non vorrei scombinare il lavoro anche di altre persone del forum che potrebbero usarla.
Ciao Dalogg
Codice: Seleziona tutto Espandi visuale
Codice: Seleziona tutto
SELECT "cod_modello", "Nome" FROM "tb_modelli" WHERE "cod_modello" IN ( SELECT "tb_colori"."cod_modello" FROM "tb_colori" WHERE "tb_colori"."colore" = 'rosso' ) AND "cod_modello" IN ( SELECT "tb_colori"."cod_modello" FROM "tb_colori" WHERE "tb_colori"."colore" = 'blu' )
Ciao Dalogg
- Allegati
-
- maglieria_2.odb
- (14.58 KiB) Scaricato 87 volte
LibreOffice 6.0.5.2 (x64) su Windows 10