J'ai 2 tables dans ma base de données. L'un concerne les commandes et l'autre les entreprises.
Les commandes ont cette structure:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Et la société a cette structure:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Pour obtenir les noms des sociétés d'une commande, je peux faire une requête en tant que telle:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Cette requête fonctionne correctement, mais pas la requête suivante.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Pourquoi la première requête fonctionne-t-elle mais pas la seconde?
La première requête renvoie:
name
---------------
Company 1
Another Company
StackOverflow
La deuxième requête ne renvoie que:
name
---------------
Company 1
Pourquoi est-ce, pourquoi la première requête renvoie toutes les sociétés, mais la deuxième requête ne renvoie que la première?