Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    query dove non tutti i record corrispondono alla join

    ciao, ho due tabelle.. una contiene gli articoli e l'altra contiene le caratteristiche..
    in una pagina devo visualizzare le caratteristiche e al click sulla caratteristica devo visualizzare gli articoli corrispondenti.. quindi:
    codice:
    select distinct trim(valcar) as valcar,desccar from caratteristiche
    where codcar = '0031' and codart in 
    (
    select codart
    from articoli
    where codforitore = 'XXX' 
    )
    order by codcar asc
    Con questa query seleziono tutte le caratteristiche degli articoli risultanti dal filtro della subquery. Il problema nasce quando alcuni degli articoli filtrati nella subquery, pur esistendo, non hanno una corrispondenza nella tabella delle caratteristiche con il risultato che non verranno mai visualizzati..
    C'è un modo per prendere anche questi articoli non presenti nelle caratteristiche ed attribuirli ad una caratteristica fittizia?

  2. #2
    doppino, hai due soluzioni

    1. usi una LEFT JOIN tradizionale
    2. usi una UNION: la prima SELECT è quella che hai postato, la seconda quello che manca

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da optime
    doppino, hai due soluzioni

    1. usi una LEFT JOIN tradizionale
    2. usi una UNION: la prima SELECT è quella che hai postato, la seconda quello che manca
    ciao optime, tutto apposto?
    la seconda soluzione ok, la prima non l'ho capita.. mi fai un esempio con left join ?
    Thanx

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ah ovviamente se mi fai l'esempio me lo devi fare sulla mia query .. perchè giusto per intenderci.. non capisco poi a cosa mi verrebbero associati i record della prima tabella se usassi un left outer join.. cioè a quale codice caratteristica..

  5. #5

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da optime
    pigro. http://forum.html.it/forum/showthrea...ight=LEFT+JOIN

    ao ma mica non sò come si usa left join!! .. uaaa.. ma hai cambiato avatar!! nooooooo!!
    leggi quello che ho scritto su

  7. #7
    Originariamente inviato da dops
    ao ma mica non sò come si usa left join!! .. uaaa.. ma hai cambiato avatar!! nooooooo!!
    leggi quello che ho scritto su
    il campo caratteristica dentro agli articoli è vuoto?

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da optime
    il campo caratteristica dentro agli articoli è vuoto?
    no non c'è un campo caratteristica negli articoli.. la join la faccio con il codice articolo tra le due tabelle.. il db non l'ho disegnato io..

  9. #9
    ma se tu fai un elenco di caratteristice con gli articoli corrispondenti, cosa ti importa di elencare gli articoli che non corrispondono? ma forse non ho capito cosa vuoi ottenere...

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da optime
    ma se tu fai un elenco di caratteristice con gli articoli corrispondenti, cosa ti importa di elencare gli articoli che non corrispondono? ma forse non ho capito cosa vuoi ottenere...
    uhm.. cerco di spiegarmi meglio..
    se in una tabella "caratteristiche" non esiste la chiave (il codice articolo) della tabella articoli e con la quale faccio la join, questi articoli che non hanno chiave corrispondente nella tabella caratteristiche, non li visualizzerò mai quando andrò a selezionare gli articoli per codice caratteristica..
    cerco di spiegarmi ancora meglio..
    data una tabella caratteristiche composta in questo modo:
    codice:
    COD_ART	CODICE_CAR	DESC_CAR	          VAL_CAR
    034018	   0031	              Dimensioni monitor in "	15
    038339	   0031	              Dimensioni monitor in "	12
    041527	   0031	              Dimensioni monitor in "	7
    030556	   0031	              Dimensioni monitor in "	12
    019151	   0031	              Dimensioni monitor in "	20
    019155	   0031	              Dimensioni monitor in "	14
    036589	   0031	              Dimensioni monitor in "	17
    019156	   0031	              Dimensioni monitor in "	42
    054607	   0031	              Dimensioni monitor in "	17
    054655	   0031	              Dimensioni monitor in "	17
    054698	   0031	              Dimensioni monitor in "	19
    054724	   0031	              Dimensioni monitor in "	17
    054876	   0031	              Dimensioni monitor in "	19
    054921	   0031	              Dimensioni monitor in "	17
    voglio selezionare tutti record che soddisfano il filtro fatto sulla subquery degli articoli.
    Se nella tabella caratteristiche non esiste il codice articolo selezionato nella tabella degli articoli, quando andrò a filtrare gli articoli per caratteristica, non vedrò gli articoli che non sono presenti nella tabella delle caratteristiche.. è chiaro.. e questo perchè al momento faccio una inner join sulla chiave "codice articolo" delle due tabelle.
    Se faccio un right join invece, prenderò tutti i record della tabella articoli anche se la chiave "codice articolo" non è presente nella tabella caratteristiche.. ma a questo punto.. l'articolo che non è presente nella tabella caratteristiche.. a quale caratteristica appartiene? come faccio a filtrarlo partendo dalle caratteristiche?

    Per rispondere alla tua ultima domanda:
    Mi importa e come vedere sempre e comunque tutti gli articoli, è fondamentale riuscire a raggiungere gli articoli anche se non sono associati ad una caratteristica.. tanto che se non è possibile filtrarli in qualche modo (con un caratteristica fittizia) scelgo di non fare il filtro per caratteristica..

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.