MySQL JOIN の行の生成: 回避策
MySQL は、Oracle (CONNECT BY LEVEL
を使用) や SQL Server などの他のデータベース システムとは異なり、JOIN 操作のための任意の行の生成をネイティブにサポートしていません。 これは、一連の番号付き行を作成する単一のコマンドは存在しないことを意味します。
ただし、同様の結果を達成するための回避策がいくつかあります。
数値テーブルの使用: 最も効率的な解決策は、一連の数値を含む専用のテーブルを作成することです。 このテーブルは他のテーブルと JOIN できます。 このテーブルは一度作成すると繰り返し再利用できます。
UNION ALL を使用した数値の生成: 行数が少ない場合は、複数の UNION ALL
ステートメントを使用してシーケンスを作成できます。 このアプローチは、行数が多い場合には効率が低くなります。 たとえば、行 1 ~ 5 を生成するには:
<code class="language-sql">SELECT 1 AS num UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5;</code>
MySQL には組み込みの行ジェネレーターがないため、これらの代替方法が必要になります。選択は、必要な行生成の頻度と必要なシーケンスの規模によって異なります。最適なパフォーマンスを得るには、通常、事前に作成された数値テーブルを使用することをお勧めします。
以上がMySQL で JOIN 操作の行を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。