AND NOT EXISTS (select ...)
digunakan untuk memastikan bahwa subquery tidak mengembalikan baris apa pun. Biasanya hanya masuk akal jika subquery berkorelasi (yaitu, jika merujuk ke nilai dari kueri luar), karena jika tidak, itu akan benar untuk setiap baris hasil (dan tidak akan benar-benar memengaruhi kueri), atau salah untuk setiap baris hasil (dan akan menyebabkan kueri tidak mengembalikan hasil sama sekali, seperti dalam kasus Anda). Saya berpikir yang Anda inginkan adalah:
AND members.member_ID NOT IN (select shares.member_ID from shares where shares.asset_ID = '224')