App Engine, How to check if all values in a list are in a string list in the datastore
This isn't directly possible. You can use multiple equality filters, and the query will only match entities that have at least those items in the list (eg, "WHERE foo = 'a' AND foo = 'b'" will only match if foo is a list containing at least 'a' and 'b'). If you do this without inequality filters or sort orders the datastore will use the built in merge-join strategy to satisfy your query.
Denormalization will provide more robust solutions, however. For example, if you serialize your list as a single string, you can simply check for equality with that string.
If you have a string list in the datastore that has the values:
a,b,c
How can you compare it against a list so that it only returns true if every value in the string list is present in the list?
['a', 'b'] would return false
['a', 'b', 'c'] would return true
['a', 'b', 'c', 'd', 'e'] would return true
Is this possible with GQL alone or would I need to pull put out the string list and loop over it?