このクエリは、特定のtraceid
値(この例では50、両方のテーブルに存在するキー)を指定して、必要なデータtblResults
を返しtblTraces
ます。
SELECT count(changed)
FROM (
SELECT changed
FROM tblResults
WHERE traceid = 50
AND changed = 1
ORDER BY resultid DESC
LIMIT 0,20
) as R
上記のクエリをほぼすべてに対して実行したいと思いますtraceid
(つまり、traceid 50だけでなく、traceidごとに20行を選択すると、3つのtraceidは60行を意味します)。以下のこの単純な選択は、必要なtraceid
値を取得します。
SELECT `traceid` FROM `tblTraces` WHERE `enabled` = 1
2つのクエリを「接着」するにはどうすればよいですか?
したがって、サブクエリが複数の行を返すために機能しないことを除いて、次のようなクエリを想像します(私が望む):
SELECT count(changed)
FROM (
SELECT changed
FROM tblResults
WHERE traceid = (
SELECT `traceid` FROM `tblTraces` WHERE `enabled` = 1
)
AND changed = 1
ORDER BY resultid DESC
LIMIT 0,20
) as R