I have two tables, in one the tables there is a column that holds the ID of the other table. This column could hold more than one ID so I am storing it as a list so for instance “1,2,3,4” could be the values. So I try to use the following:
SELECT TableAValue
FROM TableA
WHERE TableAID IN
(SELECT TableAID FROM TableB WHERE TableBID = 1)
This only brings back one value.
Now if I use:
SELECT TableAID FROM TableB WHERE TableBID = 1
This brings back four values. Also if I copy those four values and use:
SELECT TableAValue
FROM TableA
WHERE TableAID IN
(1,2,3,4)
This will bring back the four values I am after. This seems like something very simple to do, so I guess I’m either doing it completely wrong or I’m missing some small detail. Any ideas?
As mentioned in the comments discussion, your mistake is to hold four values in a single field. Doing so means that you’re holding a string, a single value, not a list of integers. If you want to hold several values, you need several places to hold them individually.
So, if instead you have four records, each with a different value in TableAID, it will work exactly as you expect.