The Dark Side of Hardware Upgrade Forum

...bringing out the worst in you since 2003...
Oggi è lun ott 05, 2026 11:00 pm

Tutti gli orari sono UTC +1 ora


-->
-->

Apri un nuovo argomento Rispondi all’argomento  [ 35 messaggi ]  Vai alla pagina 1, 2  Prossimo
Autore Messaggio
 Oggetto del messaggio: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 12:59 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
C'è qualcuno esperto di SQL e in particolare di PostgreSQL ?

Nella tabella A ho:

Codice:
- Option -+--- Value  ------------------------------------------------------------------------------
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3


Nella tabella B ho:
Codice:
----- Option -----------+--- Value  ------------------------------------------------------------------------------
inputKey                | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
managementKey           | VSS.1.1.2
jInitFile               | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
resultControl.key       | CMD.5.5.5.5
recognictionControl.key | CMD.6.6.6.6
recognictionControl.foo | GOOFY.6.6.6


Quindi nella tabella A ho solo 2 records presenti nella tabella B.
Ora con una sola query vorrei estrarre tutti i records:
se ci sono nella A li prendo dalla A, altrimenti dalla B dove so che ci sono tutti (è una tabella "template").

Dove sbaglio ? (con Oracle userei NVL ma su postgreSQL c'è COALESCE)

Codice:
SELECT                 
   COALESCE(TRIM(A."Option"), TRIM(B."Option"      )),
   COALESCE(TRIM(A."Value" ), TRIM(B."DefaultValue"))
FROM                   
   "HaiClientPluginOption" A,
   "PluginOption"          B
WHERE
    A."HaiPluginOptionId" = B."Id"
AND B."Id" = 1;


Output:
Codice:
coalesce  |                                        coalesce                                       
-----------+----------------------------------------------------------------------------------------
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
jInitFile | /home/user/workspace/hai2.0/test/linux/asrTwoClientPCMSimplex/client_2/jconf.both
inputKey  | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3
(12 rows)



ho provato ad aggiungere questa:

Codice:
AND B."Option" IN
(
   SELECT "Option" FROM "PluginOption" WHERE "Id" = 1
);


ma nada.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:00 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
Mai sentito parlare di JOIN?
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:01 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Nex @ ha scritto:
Mai sentito parlare di JOIN?

Ma si, ho fatto sql a tonnellate in Italia ma son passati anni.

Dai, sputa l'osso please.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:10 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
Prova così:

SELECT *
FROM TABELLA1 AS A
LEFT OUTER JOIN TABELLA2 AS B
ON A.OPTION = B.OPTION
WHERE <condizioni>


dove TABELLA1 è quella con meno record.
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:10 pm 
Schiavo
Avatar utente
Iscritto il: dom lug 18, 2010 12:48 pm
Messaggi: 10811
quando torno in ufficio ci butto un occhio ma attento che coalesce e nvl son due cose diverse ;)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:18 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Nex @ ha scritto:
Prova così:

SELECT *
FROM TABELLA1 AS A
LEFT OUTER JOIN TABELLA2 AS B
ON A.OPTION = B.OPTION
WHERE <condizioni>


dove TABELLA1 è quella con meno record.

Allora, dovrebbero esserci tutti i record della tabella B quindi, se non ricordo male,
è RIGHT OUTER JOIN.
Mi da 6 records però il campo Option ha solo i 2 record della tabella A ed è vuoto per gli altri 4 che ci sono nella B.
Con LEFT OUTER JOIN invece ottengo solo 2 records.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:20 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
LilithSChild @ ha scritto:
quando torno in ufficio ci butto un occhio ma attento che coalesce e nvl son due cose diverse ;)

Più o meno non è la stessa cosa ? solo che coalesce accetta più parametri mentre la nvl solo 2.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:22 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
L'OUTER JOIN ti restituisce tutti i record, compresi quelli che non hanno corrispondenza.

Non avevo voglia di farmi le tue tabelle qui in ufficio e non ho potuto provare.

Prova la FULL OUTER JOIN.
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:23 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Ok, trovato. Ho mischiato la tua join con la mia coalesce.

Codice:
SELECT
   COALESCE(TRIM(A."Option"), TRIM(B."Option")),
   COALESCE(TRIM(A."Value") , TRIM(B."Value"))
FROM
   "HaiClientPluginOption"  A
RIGHT OUTER JOIN
   "PluginOption"  B
ON A."Option" = B."Option"
WHERE B."Id" = 1;


Grazie 1000 :D
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:25 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
Mi devi una birra tedesca alla spina.
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:27 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Non te la posso spedire. Se vieni su te ne offro anche 10 (totale = 15€ al pub universitario :asd: )
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:28 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
Il fatto di consumarla in loco era sottinteso...

:trollface:
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:30 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Quando vuoi (non scherzo).

Ma la nera non te la presento più, è tornata col marito.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:32 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
Dopo quello che mi hai scritto manco la volevo conoscere...

Comunque un giretto in Germania me lo farei volentieri.

Tu dove vivi? Io ho delle amiche a Köln...
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:36 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Vicino Erfurt (Ilmenau).

381km da Köln.
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:38 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
trallallero @ ha scritto:
381km da Köln.

Un po' troppo direi... :LOL:

Comunque se mi gira lo sghiribizzo ti avviso...

:yeah:
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:39 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Ok, messo birra in frigo :v
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:40 pm 
Schiavo
Avatar utente
Iscritto il: dom lug 18, 2010 12:48 pm
Messaggi: 10811
Scusate ma :

Codice:
Select
Campo1,
Campo2
FROM Tabella_A
UNION
Select
Campo1,
Campo2
FROM Tabella_B


Così ti estrae entrambe i campi e se ci sono uguaglianze vengono "distinctate" di default dalla union?
_________________
http://www.youtube.com/watch?v=AKgxlCIGqc8

Spoiler: show
Il Lonfo non vaterca né gluisce
e molto raramente barigatta,
ma quando soffia il bego a bisce bisce,
sdilenca un poco e gnagio s'archipatta.
È frusco il Lonfo! È pieno di lupigna
arrafferia malversa e sofolenta!
Se cionfi ti sbiduglia e ti arrupigna
se lugri ti botalla e ti criventa.
Eppure il vecchio Lonfo ammargelluto
che bete e zugghia e fonca nei trombazzi
fa legica busia, fa gisbuto;
e quasi quasi in segno di sberdazzi
gli affarferesti un gniffo. Ma lui, zuto
t' alloppa, ti sbernecchia; e tu l'accazzi.
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:41 pm 
Schiavo
Avatar utente
Iscritto il: ven lug 16, 2010 12:52 pm
Messaggi: 5672
Località: Esule in quel di Milano
UNION = merda

Meglio le JOIN
_________________
"Veramente la scoperta che c'è un'Italia berlusconiana mi colpisce molto: è la peggiore delle Italie che io ho mai visto, e dire che di Italie brutte nella mia lunga vita ne ho viste moltissime. L'Italia della marcia su Roma, becera e violenta, animata però forse anche da belle speranze. L'Italia del 25 luglio, l'Italia dell'8 settembre, e anche l'Italia di piazzale Loreto, animata dalla voglia di vendetta. Però la volgarità, la bassezza di questa Italia qui non l'avevo vista né sentita mai. Il berlusconismo è veramente la feccia che risale il pozzo". (Indro Montanelli)
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:43 pm 
Schiavo
Avatar utente
Iscritto il: dom lug 18, 2010 12:48 pm
Messaggi: 10811
Nex @ ha scritto:
UNION = merda

Meglio le JOIN


ovvio, ma per una tabella di 4 record con la join ti incasini la vita e basta.
_________________
http://www.youtube.com/watch?v=AKgxlCIGqc8

Spoiler: show
Il Lonfo non vaterca né gluisce
e molto raramente barigatta,
ma quando soffia il bego a bisce bisce,
sdilenca un poco e gnagio s'archipatta.
È frusco il Lonfo! È pieno di lupigna
arrafferia malversa e sofolenta!
Se cionfi ti sbiduglia e ti arrupigna
se lugri ti botalla e ti criventa.
Eppure il vecchio Lonfo ammargelluto
che bete e zugghia e fonca nei trombazzi
fa legica busia, fa gisbuto;
e quasi quasi in segno di sberdazzi
gli affarferesti un gniffo. Ma lui, zuto
t' alloppa, ti sbernecchia; e tu l'accazzi.
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:45 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Potrebbe anche andare ma ho un 3° campo che c'è solo nella tabella B e ciò invalida la union:

Codice:
SELECT
   COALESCE(TRIM(A."Option"), TRIM(B."Option")),
   COALESCE(TRIM(A."Value") , TRIM(B."Value")),
   B."MultipleValue"
FROM
   "HaiClientPluginOption"  A
RIGHT OUTER JOIN
   "PluginOption"  B
ON A."Option" = B."Option"
WHERE B."Id" = 1;
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:49 pm 
Schiavo
Avatar utente
Iscritto il: dom lug 18, 2010 12:48 pm
Messaggi: 10811
trallallero @ ha scritto:
Potrebbe anche andare ma ho un 3° campo che c'è solo nella tabella B e ciò invalida la union:

Codice:
SELECT
   COALESCE(TRIM(A."Option"), TRIM(B."Option")),
   COALESCE(TRIM(A."Value") , TRIM(B."Value")),
   B."MultipleValue"
FROM
   "HaiClientPluginOption"  A
RIGHT OUTER JOIN
   "PluginOption"  B
ON A."Option" = B."Option"
WHERE B."Id" = 1;


ah ok allora che la join sia con te :yaya:


ah e comunque:
Codice:
SELECT
   COALESCE( TRIM(A."Option"), TRIM(B."Option") ),
   COALESCE( TRIM(A."Value") , TRIM(B."Value") ),
   B."MultipleValue"
FROM
   "HaiClientPluginOption"  A
      RIGHT OUTER JOIN "PluginOption"  B ( ON A."Option" = B."Option" )
WHERE
   B."Id" = 1;


Curiamo l'indentazione per cortesia :O
_________________
http://www.youtube.com/watch?v=AKgxlCIGqc8

Spoiler: show
Il Lonfo non vaterca né gluisce
e molto raramente barigatta,
ma quando soffia il bego a bisce bisce,
sdilenca un poco e gnagio s'archipatta.
È frusco il Lonfo! È pieno di lupigna
arrafferia malversa e sofolenta!
Se cionfi ti sbiduglia e ti arrupigna
se lugri ti botalla e ti criventa.
Eppure il vecchio Lonfo ammargelluto
che bete e zugghia e fonca nei trombazzi
fa legica busia, fa gisbuto;
e quasi quasi in segno di sberdazzi
gli affarferesti un gniffo. Ma lui, zuto
t' alloppa, ti sbernecchia; e tu l'accazzi.
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 1:54 pm 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Ma va a cagher! indenta il traffico di Roma prima di parlare :asd:
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: mer ott 19, 2011 2:08 pm 
Schiavo
Avatar utente
Iscritto il: dom lug 18, 2010 12:48 pm
Messaggi: 10811
trallallero @ ha scritto:
Ma va a cagher! indenta il traffico di Roma prima di parlare :asd:


no dai roma perderebbe metà del suo fascino senza le smart sopra gli alberi :better:
_________________
http://www.youtube.com/watch?v=AKgxlCIGqc8

Spoiler: show
Il Lonfo non vaterca né gluisce
e molto raramente barigatta,
ma quando soffia il bego a bisce bisce,
sdilenca un poco e gnagio s'archipatta.
È frusco il Lonfo! È pieno di lupigna
arrafferia malversa e sofolenta!
Se cionfi ti sbiduglia e ti arrupigna
se lugri ti botalla e ti criventa.
Eppure il vecchio Lonfo ammargelluto
che bete e zugghia e fonca nei trombazzi
fa legica busia, fa gisbuto;
e quasi quasi in segno di sberdazzi
gli affarferesti un gniffo. Ma lui, zuto
t' alloppa, ti sbernecchia; e tu l'accazzi.
Top
 Profilo Non connesso  
 
 Oggetto del messaggio: Re: SQL (PostgreSQL)
MessaggioInviato: lun ott 24, 2011 9:21 am 
Schiavo
Avatar utente
Iscritto il: lun lug 19, 2010 6:08 pm
Messaggi: 7370
Località: Smileland (già Crucconia)
Prima funzionava perché non avevo messo le condizioni della tabella "HaiClientPluginOption" ma ora mi servono e non funge più.

Spiego:
La tabella "PluginOption" (B) è una tabella template quindi ha un id che corrisponde all'id di un plugin della tabella "HaiPlugin" (HAI stands for Human Abstract Interface).

Ogni plugin può essere usato da un HaiClient in un HaiProject e quindi, in un HaiClient, ha un suo SessionId visto che può essere usato più volte.
Quindi ho fatto una tabella "HaiClientPluginOption" (A) in cui la chiave è "HaiClientId + HaiPluginId + ProjectId + SessionId + Option".
Quindi ogni progetto, ha n clients che possono avere n plugins ognuno con un session id diverso ed una serie di options, univoche per ogni "session id" in quel client/progetto.

Ora, dal DB devo estrarre tutti campi dalla tabella "HaiClientPluginOption" che hanno gli id specificati nelle condizioni OPPURE, se non ci sono, dalla tabella template "PluginOption".

Come cazzo si fa visto che non ne esco fuori ?

La tabella "PluginOption" con id 1 ha 6 campi:
Codice:
SELECT
   "Id",
   TRIM("Value")  AS "Value",
   TRIM("Option") AS "Option",
   "MultipleValue"
FROM "PluginOption"
WHERE "Id" = 1;


Cita:
Id | btrim | btrim | MultipleValue
----+-------------------------------------+-------------------------+---------------
1 | AUDIO.5.1.1;AUDIO.5.2.2;AUDIO.5.3.3 | inputKey | t
1 | jconf.both | jInitFile | f
1 | VSS.1.1.2 | managementKey | f
1 | GOOFY.6.6.6 | recognictionControl.foo | f
1 | CMD.6.6.6.6 | recognictionControl.key | t
1 | CMD.5.5.5.5 | resultControl.key | f
(6 rows)


La tabella "HaiClientPluginOption" con SessionId 3 non ha niente ma la query non mi torna niente manco dalla tabella "PluginOption":
Codice:
SELECT                                                                       
  COALESCE(TRIM(A."Option"), TRIM(B."Option")) AS "Option",
  COALESCE(TRIM(A."Value") , TRIM(B."Value"))  AS "Value", 
  B."MultipleValue"                                             
FROM                                                             
  "HaiClientPluginOption"          A                           
  FULL OUTER JOIN "PluginOption"  B                           
ON (true)                                 
WHERE                                                             
    B."Id"                = 1                                   
AND COALESCE(A."HaiClientId", 1) = 1                         
AND COALESCE(A."HaiPluginId", 1) = 1                         
AND COALESCE(A."ProjectId"  , 1) = 1                         
AND COALESCE(A."SessionId"  , 3) = 3                         
ORDER BY "Option";


Cita:
Option | Value | MultipleValue
--------+-------+---------------
(0 rows)
_________________
Se nel forum sono attivo vuol dire che al lavoro sto facendo documentazione.
Top
 Profilo E-mail Non connesso  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 35 messaggi ]  Vai alla pagina 1, 2  Prossimo
-->

Tutti gli orari sono UTC +1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Vai a:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBB.it