У мене в базі даних 2 таблиці. Один - для замовлень, а один - для компаній.
Замовлення мають таку структуру:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
І компанія має таку структуру:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Щоб отримати назви фірм замовлення, я можу зробити такий запит:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Цей запит працює нормально, але наступний запит не відповідає.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Чому працює перший запит, а не другий?
Перший запит повертає:
name
---------------
Company 1
Another Company
StackOverflow
Другий запит повертає лише:
name
---------------
Company 1
Чому це так, чому перший запит повертає всі компанії, а другий запит повертає лише перший?