Ho 2 tabelle nel mio database. Uno è per gli ordini e uno è per le aziende.
Gli ordini hanno questa struttura:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
E la società ha questa struttura:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Per ottenere i nomi delle società di un ordine, posso fare una domanda come tale:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Quella query funziona bene, ma la seguente query no.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Perché la prima query funziona ma non la seconda?
La prima query restituisce:
name
---------------
Company 1
Another Company
StackOverflow
La seconda query restituisce solo:
name
---------------
Company 1
Perché, perché la prima query restituisce tutte le società, ma la seconda query restituisce solo la prima?