[解決済み] MySQLクエリでUNIONとLIMIT操作を組み合わせる
2023-02-22 11:23:49
質問
私は ジョブ と 企業 テーブルがあり、次の条件を満たす20の仕事を抽出したいと思います。
- 2 つの指定された会社からの求人情報のみ
- 1 社あたり最大 10 件のジョブがあります
以下のように試してみました。
SELECT
と
UNION DISTINCT
が、問題なのは
LIMIT 0,10
が結果セット全体に適用されることです。私はそれが各企業に適用されるようにしたいです。
1社につき10件の求人がない場合、クエリは見つけた求人情報をすべて返すべきです。
SELECT c.name, j.title, j.`desc`, j.link
FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company1')
UNION DISTINCT
SELECT c.name, j.title, j.`desc`, j.link
FROM jobs_job j
INNER JOIN companies_company c ON j.company_id = c.id
WHERE c.name IN ('Company2')
ORDER by name, title
LIMIT 0,10
私は MySQL の初心者なので、UNION を使用する代わりにこれを行うよりスマートな方法があるかもしれないことを理解しており、改善のためのあらゆる提案を歓迎します。
どのように解決するのですか?
引用元 ドキュメント ,
ORDER BYやLIMITを個々のSELECTに適用するには 個々のSELECTに適用するには、その句を を囲む括弧の中に置きます。 の中に入れます。
(SELECT a FROM t1 WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM t2 WHERE a=11 AND B=2 ORDER BY a LIMIT 10);
関連
-
MySQLデータベースでvarchar型の数値の大きさを比較する方法
-
MySQLデータ型の詳細
-
MySQLで正規表現を使う 詳細
-
[解決済み] MySQLクエリ GROUP BY 日/月/年
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] MySQLでシングルクォート、ダブルクォート、バックスティックを使用する場合
-
[解決済み] MySQL - SELECTクエリに基づくUPDATEクエリ
-
[解決済み】Oracleクエリが順序付け後に返す行数を制限するにはどうすればいいですか?
-
[解決済み】MySQLのテーブル、インデックス、データを複製する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQLのデータバックアップにmysqldumpを使用する方法
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み】マルチパート識別子をバインドできない
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
MySQLの起動エラー:ERROR 2003 (HY000)。localhost'上のMySQLサーバーに接続できない(10061)
-
[解決済み] mysqladminのフラッシュホストでブロックを解除する方法
-
[解決済み] Ubuntu linux上で動作するリモートMySQLサーバーを再起動する方法は?
-
[解決済み] SQLを使用してSUMとSUBTRACTを行うには?
-
[解決済み] MySQLデータベースのテーブルのサイズを取得する方法は?
-
[解決済み] MySQLで複数のカラムに一意制約を指定するには?