Table1とTable2に関連しています。与えられたTable1.IDに対して、0個以上のTable2レコードが存在することがあります。私はテーブル2.Valueを取得したいビューを持っています。ここで、Table2.IDは与えられたTable1.IDに対して最大です。友人が派生テーブルを提案しましたが、それはfrom句にサブクエリが必要で、MySQLはそれを好まないのです。これを行う他の方法はありますか?サブクエリの代わりにセカンダリビューを設定しようとしましたが、非常に遅いようです。私はまた、Table2.ID = MAX(Table2.ID)をテストするためにhaving句を使用してみましたが、他のすべてのものを上にしてグループに入れない限り、その列を認識しません。MySqlビュー - 他の列が最大である1つの列の値
1
A
答えて
0
SELECT t1.*, t2a.*
FROM Table1 t1
LEFT JOIN Table2 t2a
ON (t1.table1_id = t2a.table1_id)
LEFT JOIN Table2 t2b
ON (t1.table1_id = t2b.table1_id AND t2a.table2_id < t2b.table2_id)
WHERE t2b.table2_id IS NULL
AND t1.table1_id = ?;
+0
素晴らしい作品です!セカンダリビューよりもはるかに高速です。ありがとう。この方法で私が目にするべきパフォーマンス上の懸念事項はありますか?テーブルのサイズやインデックスなどについては? –
+0
さて、あなたは良いパフォーマンスが必要なクエリを常にEXPLAINで分析し、インデックスをよく使用し、ファイルセット/テンポラリテーブルを使用していないことを確認してください。しかし、このクエリは、正規化されたデータベースで取得できるほどスケーラブルです。 –
+0
いいですね。助けてくれてありがとう。 –
関連する問題
- 1. 他の配列の最大値を持つ1つの配列を検索
- 2. SQL:1列の最大値を取得し、対応する他の列
- 3. パワーのBi:最大値と最小値の他の列の値
- 4. mysqlの列の最大値を見つける方法は?
- 5. 1つの列の最大値を持つ行を返すクエリ
- 6. Groupby 1列で、パンダの他の2列の差の最大(絶対値)を見つけよう
- 7. 複数の値が1つの列にありますMYSQL
- 8. MySQL - グループ1つの列で最小値を取得
- 9. のMySQL:最大列の値を持つ選択行と別の列
- 10. mySQL列の最大値を持つ行を取得します。
- 11. MySqlの最適化他のテーブルの列に最大値を持つ行のみを選択
- 12. 他のフィールドが1である限り、Mysqlは1つのフィールドの最小値を取得します
- 13. サブセットの列をmysqlのサブセット内の他の列の最大値に基づいて選択する
- 14. Spark Dataframe列で他の列の最後の文字がある
- 15. pandas:pandasの2つのExcelファイルを比較し、1つの列の値が他の列にある戻り行
- 16. ビュー1列の値句
- 17. WPF DataGrid列の最大値と最小値を見つける
- 18. MySQLで1つの列または他の列を表示する方法
- 19. 1つのステートメントで配列し、アップデート「最大」の値に追加する方法
- 20. ハイチャート1列あたり1つの値
- 21. パターンのある列の最大/最小値の検索R
- 22. 列を別の+1 PL/SQLの最大値にしますか?
- 23. T-SQL:最大2つの他の列の関連する列データの選択
- 24. MySQLのテキスト列の最大値は4kBですか?
- 25. 最大2つの値を持つ列値を更新する
- 26. 複数の列が必要なときの1列の最大値
- 27. 配列の最小値と最大値
- 28. 配列の最大値と最小値
- 29. 配列の最小値/最大値
- 30. 配列の最大値と最小値
どのバージョンのMySQLを使用していますか? 5.xを使用している場合はサブクエリでうまくいくはずです – Wade
私はv5.0を使用しています。私が読んだドキュメントと私が得るエラーは、from句のサブクエリがビュー内で許可されていないことを示しています。それは5.0でのみですか? –
MySQLのオープンバグです:http://bugs.mysql.com/bug.php?id=12755 –