我遇到连接表的问题,情况如下:
表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
答案 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