1
0

【備忘録】複数テーブルから優先度をつけて優先度の高いテーブルから1レコードのみ取得する方法

Last updated at Posted at 2024-07-28

はじめに

Aテーブルからデータが欲しいけど、AテーブルにデータがなければBテーブルから取得したいときの方法を下記に記載します。

SQL文

SQL
SELECT
       別名X.カラム_1,
       別名X.カラム_2
FROM
    (
      SELECT
            "1" AS ソートキー
            A.カラム_1,
            A.カラム_2
      FROM
            テーブル A
      WHERE
            条件_1

      UNION ALL
      
      SELECT
            "2" AS ソートキー
            B.カラム_1,
            B.カラム_2
      FROM
            テーブル B
      WHERE
            条件_1
    ) AS 別名X 
ORDER BY 別名X.ソートキー
LIMIT 1;

おわりに

LIMIT句はすべてのDBで利用できるわけではないので使えないDBの場合は工夫が必要かもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0