1. ホーム
  2. sql

[解決済み] SQLです。1つのクエリに2つのselect文

2022-03-02 01:18:55

質問

1つのクエリで2つのSQLテーブルから情報を選択したいのですが、情報は無関係なので、潜在的なジョイントは存在しません。

例として、以下のような設定が考えられます。

tblMadrid

   id | name    | games | goals
    1 | ronaldo | 100   | 100
    2 | benzema | 50    | 25
    3 | bale    | 75    | 50
    4 | kroos   | 80    | 10

tblBarcelona

   id | name    | games | goals
    1 | neymar  | 60    | 25
    2 | messi   | 150   | 200
    3 | suarez  | 80    | 80
    4 | iniesta | 40    | 5

次のようなクエリが欲しいのですが。

name    | games | goals
messi   | 150   | 200
ronaldo | 100   | 100

このロジックでやってみました。 1つのクエリで複数のSELECT文 が、以下のコードではうまくいきませんでした。

USE Liga_BBVA

SELECT (SELECT name,
               games,
               goals
        FROM   tblMadrid
        WHERE  name = 'ronaldo') AS table_a,
       (SELECT name,
               games,
               goals
        FROM   tblBarcelona
        WHERE  name = 'messi')   AS table_b
ORDER  BY goals 

これについて何かアドバイスがあれば教えてください。サンクス 情報 サッカーに関することは、単純化した例です。実際には、両方のテーブルを1つにまとめて、新しい"team"カラムを持つことは不可能です。この2つのテーブルは全く異なる構造を持っていますが、この例の特徴と一致するものが必要です。

解決方法は?

次のような方法があります。

 (SELECT
    name, games, goals
    FROM tblMadrid WHERE name = 'ronaldo')
 UNION
 (SELECT
    name, games, goals
    FROM tblBarcelona WHERE name = 'messi')
ORDER BY goals;

例えば、以下を参照してください。 https://dev.mysql.com/doc/refman/5.0/en/union.html