Saya memiliki 2 tabel di database saya. Satu untuk pesanan, dan satu untuk perusahaan.
Pesanan memiliki struktur ini:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Dan Perusahaan memiliki struktur ini:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Untuk mendapatkan nama perusahaan pesanan, saya dapat melakukan kueri seperti:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Kueri itu berfungsi dengan baik, tetapi kueri berikut tidak.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Mengapa kueri pertama berfungsi tetapi bukan yang kedua?
Kueri pertama kembali:
name
---------------
Company 1
Another Company
StackOverflow
Kueri kedua hanya mengembalikan:
name
---------------
Company 1
Mengapa ini, mengapa permintaan pertama mengembalikan semua perusahaan, tetapi permintaan kedua hanya mengembalikan yang pertama?