Diciamo che ho una tabella principale per i prodotti e un'altra tabella che mantiene gli elenchi di IDProdotti .
Table name: Products -------------------- ProductID, Title, Price 1, Title 1, 12.00 2, Title 2, 15.00 4, Title 4, 11.50 8, Title 8, 13.89 11, Title 11, 12.00 Table name: ListOfProducts -------------------------- SomeID, ProductIDs 34, 4,8,1 35, 8,10,2
Ora, puoi vedere che nella tabella ListOfProducts
, registra con SomeID=35
, l'elenco dei prodotti è 8,10,2
. Come posso utilizzare SQL per trovare rapidamente ProductID 10
non valido, poiché non è nella tabella principale Prodotti?
Il mio programma è in realtà in ASP classico (legacy) e il database è in MS SQL. Posso fare un ciclo in ASP per scorrere i record in ListOfProducts
, ma come faccio a usare un SQL veloce per trovare qualsiasi ProductID
valido? In questo caso, quando il loop del programma registra 35
, lo script deve restituire ProductID 10
.
Questo sembra davvero semplice. Ma non riuscivo a pensare ad una buona soluzione. Può essere fatto? Per favore aiuto!
Grazie.
Non si dovrebbero archiviare gli ID come una list separata da virgole, questo sembra più una relazione molti-a-molti. Dovresti avere un tavolo come:
SomeID | ProductID ------------------- 34 | 4 34 | 8 34 | 1 35 | 8 35 | 10 35 | 2
Se davvero devi usare una list separata da virgole allora devi creare una specie di function di divisione