如何在多个表中的多个字段中获取不同的字段值?

时间:2010-07-15 11:22:49

标签: mysql database distinct

我有两张桌子x和y。在x表中x1为国家,x2为国家,y表为y1为国家,y2为国家。对于这些数据,如何使用这四个国家/地区字段在这两个表中获取不同的国家/地区值?

在此之前,我在这样的单个表中使用了一个国家/地区,

$query="select distinct(`x1`) from x";

现在,我在这两个表中以及四个国家/地区值中采用了不同的值。为此,联盟是可能的。但我需要在没有联合概念的单个查询中使用任何解决方案。

请提供相关的想法。在此先感谢...

3 个答案:

答案 0 :(得分:1)

想法:使用UNION

答案 1 :(得分:1)

不是最有效的查询,但试试这个:

SELECT `x1` FROM x
UNION 
SELECT `x2` FROM x
UNION 
SELECT `y1` FROM y
UNION 
SELECT `y2` FROM y

答案 2 :(得分:1)

Union是这个问题的最佳答案,因为它正是它的设计目标。

我能想到的唯一其他方法是完全外连接 - 类似于:

select coalesce(cx.country,cy.country) country 
from (select distinct country from x) cx
full outer join (select distinct country from y) cy 
on cx.country = cy.country

但是,你不能在MYSQL中做完全外连接(据我所知) - 并且变通方法涉及工会......