데이터베이스에 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
왜 이것이 첫 번째 쿼리가 모든 회사를 반환하지만 두 번째 쿼리는 첫 번째 쿼리 만 반환합니까?