PDA

View Full Version : [MySql]Piccola difficoltà su una select


RaouL_BennetH
19-05-2008, 13:30
Ciao :)

Devo fare una query che mi selezioni tutti i campi all'interno di una tabella, dove la chiave primaria di questa tabella sia uguale alla chiave primaria di un'altra tabella dove il campo "enterprise" di quest'altra tabella sia uguale ad un determinato valore.

Tradotto (perdonate se mi sono espresso male) dovrei fare:


SELECT * FROM cusTable WHERE id =
(SELECT id FROM norTable WHERE enteprise = 'ACSA');


Il risultato di questa query mi da sempre "empty" :(

Ovviamente se io faccio:


SELECT id FROM norTable WHERE enterprise = 'ACSA'


ottengo il risultato (nel senso che il dato è presente).

Grazie :)

RaouL.

gugoXX
19-05-2008, 13:34
Ciao :)

Devo fare una query che mi selezioni tutti i campi all'interno di una tabella, dove la chiave primaria di questa tabella sia uguale alla chiave primaria di un'altra tabella dove il campo "enterprise" di quest'altra tabella sia uguale ad un determinato valore.

Tradotto (perdonate se mi sono espresso male) dovrei fare:


SELECT * FROM cusTable WHERE id =
(SELECT id FROM norTable WHERE enteprise = 'ACSA');


Il risultato di questa query mi da sempre "empty" :(

Ovviamente se io faccio:


SELECT id FROM norTable WHERE enterprise = 'ACSA'


ottengo il risultato (nel senso che il dato è presente).

Grazie :)

RaouL.


= come operatore si usa solo per operazioni di eguaglianza tra scalari.
Tu devi usare l'operatore IN, che serve per esistenze all'interno di gruppi.


SELECT * FROM cusTable WHERE id IN
(SELECT id FROM norTable WHERE enteprise = 'ACSA');


Ma non restituiva neppure errore? :(

RaouL_BennetH
19-05-2008, 13:40
= come operatore si usa solo per operazioni di eguaglianza tra scalari.
Tu devi usare l'operatore IN, che serve per esistenze all'interno di gruppi.


SELECT * FROM cusTable WHERE id IN
(SELECT id FROM norTable WHERE enteprise = 'ACSA');


Ma non restituiva neppure errore? :(

Grazie :)

No, non mi restituiva nessun errore, mi dava solo 'empty' :(

RaouL_BennetH
20-05-2008, 11:40
Altro piccolo quesito:

Se dalla seconda tabella, mi dovessero servire altri campi?

nel senso:

cusTable:
ID - IDC - TIPO - DATA

norTable
IDC - ENTERPRISE - PLATE

ed io volessi ottenere:

cusTable.ID, cusTable.IDC, norTable.ENTERPRISE, norTable.PLATE, cusTable.TIPO, cusTable.DATA ? ? ?

io ho provato a fare:


select * from cusTable, norTable where IDC in (select IDC from norTable where enterprise = 'ACSA');


Ma ovviamente ottengo tutti i risultati mischiati e duplicati.

RaouL_BennetH
20-05-2008, 11:54
Vabbè, come non detto, ho fatto:



SELECT * FROM cusTable, norTable
WHERE
cusTable.IDC = norTable.IDC
AND
norTable.IDC = 'ACSA'