2010-07-15 62 views
0

我有一个两个表x和y。在该表中,x1表示国家,x2表示国家,y表表示y1国家,y2表示国家。对于这些数据,我如何才能在这四个国家/地区的这两个表格中获得不同的国家/地区值?如何在多个表中的多个字段中获取不同的字段值?

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

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

现在,我有取不同值在这种双表格以及来自四个国家的价值观。对于这种联合是可能的。但我需要任何解决方案在没有联盟概念的单个查询中使用。

请为此提供相关建议。在此先感谢...

+1

为什么你不能使用'UNION'?你能举一个你现有数据的例子,你想要返回什么? – Mike 2010-07-15 11:39:41

+0

@Mike我使用并获得联盟的解决方案,除了联盟,我要求解决方案的任何其他替代或简单的方法。 – Karthik 2010-07-15 12:32:53

回答

1

理念:用UNION

+0

工会是好的,但我需要一些其他的解决方案 – Karthik 2010-07-15 12:38:36

+0

在写作时没有指定:P会考虑一个替代 – MadH 2010-07-15 14:53:03

1

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

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

@KM:'UNION'返回不同的结果,所以不需要'DISTINCT'每个“SELECT”。 – Mike 2010-07-15 11:58:10

+0

@km,@mike - 联合是好的,但我需要一些其他的解决方案。 – Karthik 2010-07-15 12:39:22

+0

@Karthik,UNION是做到这一点的方式,其他任何事情都会更加复杂,为什么你不能使用UNION? – 2010-07-15 12:47:04

1

联盟是最好的回答这个问题,因为这正是它的为...设计。

我能想到的唯一的其他方法将是一个完全外部联接 - 是这样的:

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全外连接(据我所知) - 和解决方法涉及工会...

+0

检查与此... – Karthik 2010-07-28 04:35:34

相关问题