Ich habe 2 Tabellen in meiner Datenbank. Eine ist für Bestellungen und eine für Unternehmen.
Bestellungen haben diese Struktur:
OrderID | attachedCompanyIDs
------------------------------------
1 1,2,3
2 2,4
Und das Unternehmen hat diese Struktur:
CompanyID | name
--------------------------------------
1 Company 1
2 Another Company
3 StackOverflow
4 Nothing
Um die Firmennamen eines Auftrags zu erhalten, kann ich eine Abfrage als solche durchführen:
SELECT name FROM orders,company
WHERE orderID = 1 AND FIND_IN_SET(companyID, attachedCompanyIDs)
Diese Abfrage funktioniert einwandfrei, die folgende Abfrage jedoch nicht.
SELECT name FROM orders,company
WHERE orderID = 1 AND companyID IN (attachedCompanyIDs)
Warum funktioniert die erste Abfrage, aber nicht die zweite?
Die erste Abfrage gibt Folgendes zurück:
name
---------------
Company 1
Another Company
StackOverflow
Die zweite Abfrage gibt nur Folgendes zurück:
name
---------------
Company 1
Warum ist das so, warum gibt die erste Abfrage alle Unternehmen zurück, während die zweite Abfrage nur die erste zurückgibt?