Veritabanımda 2 tablom var. Biri siparişler için, diğeri şirketler içindir.
Siparişler şu yapıya sahiptir:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Ve Şirket şu yapıya sahiptir:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Bir siparişin şirket adlarını almak için şu şekilde bir sorgu yapabilirim:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Bu sorgu iyi çalışıyor, ancak aşağıdaki sorgu çalışmıyor.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Neden ilk sorgu çalışıyor ama ikincisi çalışmıyor?
İlk sorgu şunu döndürür:
name
---------------
Company 1
Another Company
StackOverflow
İkinci sorgu yalnızca şunu döndürür:
name
---------------
Company 1
Neden bu, neden ilk sorgu tüm şirketleri döndürürken, ikinci sorgu yalnızca ilkini döndürür?