次の MySQL クエリ:
select `userID` as uID,
(select `siteID` from `users` where `userID` = uID) as `sID`,
from `actions`
where `sID` in (select `siteID` from `sites` where `foo` = "bar")
order by `timestamp` desc limit 100
…エラーを返します:
Unknown column 'sID' in 'IN/ALL/ANY subquery'
ここで何が間違っているのかわかりません。これsID
は列ではなく、 を実行して作成した「エイリアス」(これを何と呼びますか?) です(select siteID from users where userID = uID) as sID
。そして、それはIN
サブクエリの中にもありません。
何か案は?
編集: @Roland: コメントありがとうございます。actions
、およびの 3 つのテーブルがusers
ありsites
ます。テーブルには、テーブルのエントリに対応するフィールドactions
が含まれています。このテーブル ( ) 内のすべてのユーザーには、. テーブルから最新のアクションを選択し、テーブルにリンクして、それらのアクションを誰がどのサイトで実行したかを調べようとしています。それが理にかなっていることを願っています:)userID
users
users
siteID
actions
users
sites