50の最も頻繁な列の値を含む表からすべての行を選択したいとします。私はそのような結合を使用しようとしましたが、LEFT JOINの私の選択が間違っているようです。ステートメントの内部はうまくいくようです。私の声明で何を変えるべきですか?最も頻繁に値が1つの列を選択してください。
SELECT col1, col2
FROM tbl as t1
LEFT JOIN (
SELECT id
FROM tbl
WHERE id > 123
AND id < 987654
GROUP BY col1
ORDER BY COUNT(id) DESC
LIMIT 50
) AS t2
ON t1.id = t2.id
クエリが悪いのか?代わりに 'inner join'に変更しようとしましたか? – sgeddes
内部結合は、わずか50行のcを返します。奇妙なことは、内側の選択範囲内の制限を5に変更したときに返される行の数が変更されなかったことです。 – pedmillon
'left join'を使用すると、結果は同じになります。いくつかは' t2'の 'null' id(表示していれば)だけです。多分サンプルデータと期待される結果は助けになるでしょう... – sgeddes