私は9900のオフセット後に限界100のために99レコードしか得ていません。私は20000レコードを持っているにもかかわらず、左側のテーブルには両方ともテーブルがあります。クエリまたはループで何が問題なのですかMySqlの制限とオフセットが間違った結果をもたらします
でも、私はのphpmyadminというクエリを試しても、同じ結果が得られました99レコード。
クエリ
select distinct(table1.id), table2.name, table2.uuid from table1
left join table2 on table1.id = table2.id limit 9900, 100
Laravel問合せ:
$this
->database
->table('table1')
->selectRaw('distinct(table1.id), table2.uuid, table2.name')
->leftJoin('table1.id', '=', 'table2.id')
->where('opponent_uID', '>', $uID)
->skip($offset)
->take($limit)
->get();
ループ
$limit = 100;
$offset = 0;
while (true) {
$result = $this->query($limit, $offset);
$offset += $limit;
if (empty($result)) {
break;
}
// Logic here
}
あなたのデータベースにあるレコードの数は少し意味がありません。より関連するのは、結合されている2つの表のレコード数と、左結合が結果セット内のレコードの可能な数を増やす方法です。また、DISTINCTを使用すると、レコード数に影響を与えることがあります。 –
@TimBiegeleisen左結合の両方のテーブルに2,00,000レコード – vijaykumar