こんにちは、基本的な MySQL クエリ形式は知っていますが、複雑なクエリを実行する必要があります。(説明目的で)言うと、列id、item_name、およびno_of_viewsを持つ3つのテーブルがあります。これらの 3 つのテーブルから上位 10 件の表示アイテムを取得する単一のクエリが必要です。
Table1
id: item_name no_of_views
1 item1 20
2 item2 25
3 item3 16
4 item4 10
Table2
id: item_name no_of_views
1 itemA 2
2 itemB 5
3 itemC 70
4 itemD 0
Table3
id: item_name no_of_views
1 item_1 34
2 item_2 55
3 item_3 10
4 item_4 1
これらのテーブルを結合し、no_of ビューに基づいてクエリを実行する必要があることはわかっています
お気に入り
$query="
(SELECT * FROM Table2)
UNION ALL
(SELECT * FROM Table2)
UNION ALL
(SELECT * FROM Table2)
ORDER by no_of _views DESC LIMIT 10";
これは完全に正常に機能しますが、私の問題は、テーブルに数百のアイテムがあり、多くのテーブルがあることです。これが私が行う方法である場合、クエリはすべてのテーブルからすべての結果を取得する必要があり、上位 10 のみを取得する必要がありますビュー、
ビューの数に基づいてすべてのテーブルから 10 個の値のみを選択するようにしたいのですが、たとえば、10 個のテーブルがあり、それぞれに no_of_views があるとします。すべてのテーブルの中でどのアイテムが最も高いビューを持ち、次に低い no_of_views を持っているかを照会するにはどうすればよいですか?別のテーブルまたは同じテーブルから真であるなど。それも可能です。
提案してください。