Tengo 2 tablas en mi base de datos. Uno es para pedidos y otro para empresas.
Los pedidos tienen esta estructura:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Y la empresa tiene esta estructura:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Para obtener los nombres de las empresas de un pedido, puedo hacer una consulta como tal:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Esa consulta funciona bien, pero la siguiente consulta no.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
¿Por qué funciona la primera consulta pero no la segunda?
La primera consulta devuelve:
name
---------------
Company 1
Another Company
StackOverflow
La segunda consulta solo devuelve:
name
---------------
Company 1
¿Por qué es esto, por qué la primera consulta devuelve todas las empresas, pero la segunda consulta solo devuelve la primera?