如何连接这两个表(创建多语言界面)

时间:2015-03-31 15:04:26

标签: mysql

我遇到连接表的问题,情况如下:

表1(国家):id,name

表2(countries_lng):id,orig_id,name,lng_id

orig_id是countries.id的外键。

我需要的是创建一个sql查询,它将显示来自国家/地区的行并为它们分配ID 1,而来自countries_lng的它将从表中显示正确的lng_id。

有可能吗?

现在我无法将表中的所有数据移动到各自的_lng表中,所以我正在寻找这个临时解决方案。

提前致谢。

//编辑

现在的样子示例,我希望它如何:

国家: id:1,名称:Českárepublika

countries_lng: id:1,orig_id:1,name:Czech republic,lng_id:2

结果:

id:1,姓名:Českárepublika,lng_id:1

id:1,姓名:捷克共和国,lng_id:2

1 个答案:

答案 0 :(得分:1)

您可以使用UNION加入结果。

例如:

select id, name
from countries
where id_lang=1
union
select id, name
from countries_lang
where id_lang=1

结果:

id  name
1   Česká republika
1   Czech republic

如果您需要列lng_id,那么您必须将此列添加到countries表(具有任何默认值):

select id, name, lng_id
from countries
-- where lng_id=1
union
select id, name, lng_id
from countries_lang
-- where lng_id=1

或在各个国家/地区模拟此专栏:

select id, name, 1 as lng_id
from countries
union
select id, name, lng_id
from countries_lang

结果:

id  name    lng_id
1   Česká republika 1
1   Czech republic  2