我的数据库中有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
为什么会这样,为什么第一个查询返回所有公司,而第二个查询仅返回第一个公司?