我的数据库中有两个表,一个是订单表,一个是公司表。
命令有这样的结构:
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
为什么,为什么第一个查询返回所有公司,而第二个查询只返回第一个?