同一の構造を持つ複数の MySQL テーブルからデータを効率的に選択するにはどうすればよいですか?
Jan 04, 2025 pm 12:10 PMMySQL: 構造は同じだがデータが異なる複数のテーブルからデータを選択する
大規模なデータセットを管理する場合、多くの場合、データを複数のテーブルに保存する必要があります。ローカライゼーションまたはパーティション化の目的で同一のスキーマを持つテーブル。ただし、特定の並べ替え順序を維持しながら複数のテーブルからデータを抽出する場合、問題が発生する可能性があります。
問題: WHERE 句のあいまいな列エラー
次の MySQL ステートメントを考えてみましょう。
SELECT * from us_music, de_music where `genre` = 'punk'
このクエリは、us_music と de_music という 2 つのテーブルのデータを結合しようとします。両方のテーブルに存在するジャンル列。ただし、MySQL は次のエラーを返します。
#1052 - Column 'genre' in where clause is ambiguous
解決策: UNION 句の使用
このあいまいさを解決するには、UNION 句を使用します。 UNION 句は、複数の SELECT ステートメントの結果を 1 つの結果セットに結合します。この場合の使用方法は次のとおりです。
(SELECT * from us_music where `genre` = 'punk') UNION (SELECT * from de_music where `genre` = 'punk')
このクエリは、まずジャンルが「パンク」に等しい us_music からデータを選択し、次に de_music に対して同じ操作を実行します。両方の SELECT ステートメントの結果は、単一の結果セットに結合されます。
結合された結果の並べ替え
データが結合されたら、次の方法で並べ替え順序を指定できます。 UNION ステートメントの後に ORDER BY 句を追加します:
(SELECT * from us_music where `genre` = 'punk') UNION (SELECT * from de_music where `genre` = 'punk') ORDER BY `band_name`
このクエリは両方のテーブルのデータを結合して並べ替えます。結果は、band_name 列に基づいています。
以上が同一の構造を持つ複数の MySQL テーブルからデータを効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

共通の脆弱性(SQLインジェクション、ブルートフォース攻撃)に対してMySQLを保護するにはどうすればよいですか?

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?
