Eu tenho 2 tabelas no meu banco de dados. Um é para pedidos, e um é para empresas.
Orders tem esta estrutura:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
E a empresa tem essa estrutura:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Para obter os nomes das empresas de um pedido, posso fazer uma consulta como:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Essa consulta funciona bem, mas a consulta a seguir não.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Por que a primeira consulta funciona, mas não a segunda?
A primeira consulta retorna:
name
---------------
Company 1
Another Company
StackOverflow
A segunda consulta retorna apenas:
name
---------------
Company 1
Por que isso ocorre, por que a primeira consulta retorna todas as empresas, mas a segunda consulta retorna apenas a primeira?