0

プロジェクト、大陸、国のテーブルがあると想像してみてください。プロジェクトは多くの国で行われる可能性があり、別の列では、各国にその大陸を表す番号があります。

国で満たされた各大陸の列を返すクエリを作成したいと思います。しかし同時に、私はそれが大陸にないプロジェクトを返すことを望んでいません。

この3つのクエリに参加することは少なくなります。

SELECT PROJECTS,COUNTRIES AS `EUROPE` FROM WORLD WHERE COUNTRIES = 2;

SELECT PROJECTS,COUNTRIES AS `AFRICA` FROM WORLD WHERE COUNTRIES = 3;

SELECT PROJECTS  FROM WORLD WHERE PROJECTS NOT IN (SELECT PROJECTS FROM WORLD WHERE COUNTRIES = 1);

私は最後の1つを他の2つのうちのいずれかと結合することができましたが、3つを結合することはできません。異なる国ではなく、常に同じ列に国の組み合わせが返されます...

前もって感謝します

4

2 に答える 2

1

あなたが提供した情報に基づいて、これが私が提供できる最良の答えです:

SELECT PROJECT, COUNTRIES AS 'EUROPE' FROM WORLD t1
JOIN
SELECT PROJECTS,COUNTRIES AS `AFRICA` FROM WORLD t2
WHERE PROJECT NUMBER t1 = (SELECT PROJECTS FROM WORLD WHERE COUNTRIES = 1)
于 2013-03-11T08:18:35.540 に答える
0

これはどう:

SELECT 
PROJECTS, 
CASE COUNTRIES 
     WHEN 2 THEN 'Europe'
     WHEN 3 THEN 'Africa'
     ELSE 'elsewhere'
END AS Continent
WHERE COUNTRIES IN (2, 3)
AND PROJECTS NOT IN (SELECT PROJECTS FROM WORLD WHERE COUNTRIES = 1);

大陸ごとに正確に 1 列というわけではありませんが、私の意見では、データの表示はデータベース レベルではなく、とにかくプレゼンテーション レイヤーで行う必要があります。

于 2013-03-11T10:09:10.553 に答える