T-SQLで次のようなクエリを作成しようとしています。
select *
from
(select t.name tablename
from sys.columns c join sys.tables t on c.object_id = t.object_id
where c.name like 'column1'
) candidatetables
where tablename.column2 = 3
問題は最後のフィルターにあります。「マルチパート識別子「tablename.column2」をバインドできませんでした。」というエラーが表示されます。
このクエリは、スキーマに「column1」列があり、すべてのテーブルに必ず存在する「column2」という名前の列の値が3に等しいテーブルを取得する必要があります。最後のフィルターを記述できますか?これを達成するために別の方法で?