加入同一列的两个查询,选择同一列
问题描述:
想象一下,我有这张表,项目,大洲和国家。项目可以在很多国家,而在另一个专栏中,每个国家都有一个代表其大陆的数字。加入同一列的两个查询,选择同一列
我想进行一个查询,为每个填充了国家的大洲返回一列。但同时我不希望它归还那些不属于大陆的项目。
这将是更少加入这个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);
我已成功地加入最后一个与其他两个中的一个,但我不能设法加入他们三个,它总是返回国家的混合在同一列中,而不是不同的...
预先感谢您
答
根据您所提供,这是最好的答案的信息,我可以提供:
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)
答
这个怎么样:
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);
这不正是每个洲一列,但在我看来,数据的显示,必须在表示层上进行反正不是在数据库级别。
你可以给样品记录以期望的结果吗? – 2013-03-11 08:02:25