Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-06-2004, 23:06   #1
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
[MySQL]Non riesco a fare questa query mi aiutate?

Io proprio non ci riesco mi aiutate?

Tabella Contract
ContractCode | Description | Location | ecc
123 | vendita lana | Genova
256 | vendita tv | Genova
276 | vendita pc | Roma
896 | vendita pane | Roma
741 | vendita dolci | Milano
357 | vendita radio | Milano

Tabella UserContract
Login | ContractCode
Rossi | 123
Neri | 256
Neri | 123

Ecc ecc

In pratica io vorrei sapere per quali contratti relativamente per esempio a Genova NON è abilitato Rossi

In questo caso la risposta sarebbe 256.

Se chiedessi la medesima cosa ma riferita a Neri avrei come risposta un result set vuoto, infatti Neri è abilitato a tutti i contratti relativi alla zona di Genova.

Grazie, Mc
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 10:44   #2
mailand
Senior Member
 
L'Avatar di mailand
 
Iscritto dal: Aug 2001
Città: milano, qualunque birreria
Messaggi: 4208
select contractcode, description from contract where contractcode<> (select distinct contractcode from usercontract )
__________________
Save water: drink beer.
This message has been created with 100% recycled electrons
Un rutto vale più di mille parole.
mailand è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 10:49   #3
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Ti ringrazio ma il problema era proprio che con mysql non si possono usare le subquery

Purtroppo non posso usare la 4.1 che le supporta perchè è ancora alpha

Grazie, Mc
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 19:53   #4
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Ammeto che è una settimana che lavoro 16 ore al giorno ma si sorge il dubbio di esser diventato stupido ed anche molto.

Continuo a non riuscire a risolvere questo problema maledetto.

Allora senza considerare la tabella user e considerando solo:

CREATE TABLE UserContract(
Login VARCHAR(50) NOT NULL,
ContractCode int(11) NOT NULL,
PRIMARY KEY(Login,ContractCode),
INDEX(Login),
FOREIGN KEY(Login) REFERENCES Users(Login)
ON DELETE RESTRICT
ON UPDATE CASCADE,
INDEX(ContractCode),
FOREIGN KEY(ContractCode) REFERENCES Contract(ContractCode)
ON DELETE RESTRICT
ON UPDATE CASCADE) TYPE=INNODB;

e

CREATE TABLE Contract(
ContractCode INT NOT NULL,
Description VARCHAR(50) NOT NULL,
Location VARCHAR(50) NOT NULL,
ContractCurrency VARCHAR(3) NOT NULL,
CustomerCode VARCHAR(16) NOT NULL,
PRIMARY KEY (ContractCode),
INDEX(Location),
FOREIGN KEY (Location) REFERENCES Location(Location)
ON DELETE RESTRICT
ON UPDATE CASCADE) TYPE=INNODB;

Per ottenere quello che voglio, ossia i numeri di contratto per cui un determinato utente non è abilitato basterebbe una semplicissima query del tipo:

SELECT contractcode, description
FROM contract
WHERE contractcode NOT IN (SELECT contractcode FROM usercontract WHERE logi='rosssi')

Che avendo le subquery sarebbe una boiata ma io le subquery nonle ho, per cui dovrei riuscire ad arrangiarmi con un LEFT JOIN.

Farei:

SELECT contractcode, description
FROM contract
LEFT JOIN usercontract
ON contract.contractcode=usercontract.contractcode
WHERE usercontract.contract IS NULL
and usercontract.login='rossi'

Ebbe non funziona, però ho notato che se faccio

SELECT contractcode, description
FROM contract
LEFT JOIN usercontract
ON contract.contractcode=usercontract.contractcode
WHERE usercontract.contract IS NULL

Mi restiuisce tutti i contretti contenuti in contract ma non presenti in usercontract.

Spero solo che qualcuno abbia l' idea buona, in ogni caso grazie a tutti per l' attenzione e gli aiuti.
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 20:23   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
In MySQL ci sono le variabili utente...puoi utiizzare queste per creare una stringa con CONCAT in modo da immettere la stringa ottenuta (e memorizzata nella variabile utente) nella seconda query immettendola come parametro della NOT IN...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 20:33   #6
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Cionci non vorrei approfittare della tua genitlezza ma non è che potresti farmi vedere come si fa, perchè non l' ho mai fatto e non ho ben capito il tuo discorso.

Io uso la versione 4.0.18

Grazie di cuore per l' aiuto, Mc
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 20:51   #7
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Ho guardato il manuale di MySQL ma nonsono sicuro che la cosa possa funzionare, infatti supponiamo che nella variabile pippo abbia i seguneti valori (ma è possibile inserire più valori sempre nella stessa variabile?)

@pippo=512,523,518,788

Poi dovrei fare una cosa del tipo

SELECT contractcode, description
FROM contract
WHERE contractcode NOT IN @pippo

Ma lo statement NOT IN non è supportato solo dala 4.1 che è in alpha?

Io sono obbligato ad usare la 4.0.18.

Ciao, Mc
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 21:00   #8
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Come mi avevi suggertio con CONCAT posso inserire tutti i valori che mi servono in una variabile ma poi?

Ora provo poi posto i risultati.

Ciao; Mc
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2004, 21:19   #9
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Come faccio con concat ad avere una cosa simile?

@pippo=512,523,518,788

SELECT @pippo:=CONCAT(contractcode) FROM usercontract WHERE login='rossi' (non va bene)

In pratica come faccio a mettere i risultati di una query del tipo:

SELECT contractcode FROM usercontract WHERE login='rossi' (1)

in una variabile @pippo? ed avere quindi @pippo=512,523,518,788 che poi sarebbe il result set della query (1)

A questo punto dovrei fare una cosa del tipo

SELECT contractcode, description
FROM contract
WHERE contractcode NOT IN @pippo

Ma non usando NOT IN
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2004, 02:18   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
IN e NOT IN sono supportate anche dalla 4.0 soltanto non ci si possono fare subquery...

Comnque ti faccio un esempio di come creo la variabile...
Codice:
mysql> set @c = NULL;
Query OK, 0 rows affected (0.00 sec)

mysql> select @c := CONCAT_WS(',',IDProdotto, @c) FROM Prodotti LIMIT 10;
+-------------------------------------+
| @c := CONCAT_WS(',',IDProdotto, @c) |
+-------------------------------------+
| 1                                   |
| 2,1                                 |
| 3,2,1                               |
| 4,3,2,1                             |
| 5,4,3,2,1                           |
| 6,5,4,3,2,1                         |
| 7,6,5,4,3,2,1                       |
| 8,7,6,5,4,3,2,1                     |
| 9,8,7,6,5,4,3,2,1                   |
| 10,9,8,7,6,5,4,3,2,1                |
+-------------------------------------+
10 rows in set (0.00 sec)
Ho fatto LIMIT 10 solamente per creare un risutato nella seconda query...
Il problema è che non mi considera @c nella seconda query ?!?!?
Se scrivo:

SELECT * FROM Prodotti WHERE IDProdotto IN (10, 9);

funziona perfettamente...

Se scrivo:

SELECT * FROM Prodotti WHERE IDProdotto IN (@c);

non funziona...mi rende solamente il prodotto con ID = 10... Probabilmente è un problema di conversione in stringa... Ci sta che il tutto venga convertito in stringa e quando viene "stampato" all'interno della query è come se ci venisse scritto IN ('10,9.....')

Eppure sono convinto di averlo usato senza problemi una volta...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2004, 02:28   #11
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Risolto, ma sono convinto di non aver fatto così l'altra volta...
Codice:
mysql> set @c = NULL;
Query OK, 0 rows affected (0.00 sec)

mysql> select @c := CONCAT_WS(',',IDProdotto, @c) FROM Prodotti LIMIT 10;
+-------------------------------------+
| @c := CONCAT_WS(',',IDProdotto, @c) |
+-------------------------------------+
| 1                                   |
| 2,1                                 |
| 3,2,1                               |
| 4,3,2,1                             |
| 5,4,3,2,1                           |
| 6,5,4,3,2,1                         |
| 7,6,5,4,3,2,1                       |
| 8,7,6,5,4,3,2,1                     |
| 9,8,7,6,5,4,3,2,1                   |
| 10,9,8,7,6,5,4,3,2,1                |
+-------------------------------------+
10 rows in set (0.00 sec)

mysql> select * from Prodotti WHERE FIND_IN_SET(IDProdotto, @c) > 0;
+------------+-----------+----------------+
| IDProdotto | IDTabella | Tabella        |
+------------+-----------+----------------+
|          1 |         1 | FioriRecisi    |
|          2 |         2 | FioriRecisi    |
|          3 |         3 | FioriRecisi    |
|          4 |         4 | FioriRecisi    |
|          5 |         5 | FioriRecisi    |
|          6 |         1 | UtensiliManico |
|          7 |         2 | UtensiliManico |
|          8 |         6 | FioriRecisi    |
|          9 |         7 | FioriRecisi    |
|         10 |         8 | FioriRecisi    |
+------------+-----------+----------------+
10 rows in set (0.00 sec)

mysql> select * from Prodotti WHERE FIND_IN_SET(IDProdotto, @c) = 0;
+------------+-----------+-------------+
| IDProdotto | IDTabella | Tabella     |
+------------+-----------+-------------+
|         11 |         9 | FioriRecisi |
|         12 |        10 | FioriRecisi |
|         13 |        11 | FioriRecisi |
|         14 |        12 | FioriRecisi |
|         15 |        13 | FioriRecisi |
|         16 |        14 | FioriRecisi |
|         17 |        15 | FioriRecisi |
|         18 |        16 | FioriRecisi |
+------------+-----------+-------------+
8 rows in set (0.00 sec)
Ovviamente la penultima fa un IN e l'utlima un NOT IN...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2004, 10:10   #12
mcHorney
Senior Member
 
L'Avatar di mcHorney
 
Iscritto dal: Jun 2001
Messaggi: 1808
Cionci grazie mille, mi hai insegnato una cosa nuova che non avevo mai usato.

Ciao, Mc

P.S. Ma la 4.1 di MySQL è in alpha da quasi un anno, ma quando uscirà mai la versione definitiva?
__________________
www.eklettica-eventi.it
mcHorney è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
iPhone Air 2 in arrivo già nel 20...
Vimeo quasi svuotata: Bending Spoons ann...
Altro che bolla: per Huang l'AI è...
Battlefield 6: la Stagione 2 segner&agra...
Da Sony due nuovi giradischi wireless pe...
Arriva l'addio definitivo di Intel ad Al...
Attacco AI su Google Calendar: Gemini pu...
Renault vuole reintegrare Ampere nel gru...
1Password introduce un nuovo avviso anti...
Windows 11, nuovo bug blocca le app: col...
Tre sistemi operativi in uno smartphone:...
Crypto in Italia: 2,8 milioni di possess...
Pubblicato 'il carattere' di Claude: uti...
Siri cambia volto su iOS 27 e macOS 27: ...
Apple contro Intel e AMD: i numeri che r...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:50.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v