0

我有 2 个表我想合并到第三个表中我想纯粹作为 MySQL 查询而不是选择行并使用 PHP while() 来构建第三个表。

表 1 包含以下内容

ID Name
1  A
2
3

表 2 包含以下内容

ID  Desc
10
15  B
20

我想编写一个查询语句来生成以下组合表,但我只希望新的 Desc 包含表 1 中的 Name 或表 2 中的 Desc 中的非空白值,在事件中表 2 优先于表 1两个表都包含一个非空白

ID1 ID2 Desc
1   10  A
1   15  B
1   20  A
2   10
2   15  B
2   20
3   10
3   15  B
3   20

这可以作为 MySQL 查询吗?我应该使用 PHP 方法吗?

谢谢。

4

3 回答 3

2
insert into TableThree (id1, id2, Descr)
select
    T1.id,
    T2.id,
    case LENGTH(TRIM(T2.Descr))
        when 0 then T1.Name
        else T2.Descr
    end
from TableOne T1, TableTwo T2
order by 1, 2
于 2013-04-16T17:46:18.963 回答
0

想想,你需要这个...

select t1.id as id1, t2.id as id2, if(length(t2.name), t2.desc, t1.name) as desc from t1,t2;
于 2013-04-16T17:32:47.687 回答
0

你可以这样做:

SELECT a.ID as ID1, b.ID as ID2, (CASE WHEN b.Desc is not null THEN b.Desc ELSE a.Name END) as Desc from Table1 a full join Table2;

但这是未经测试的......祝你好运。

问候

副歌

于 2013-04-16T17:34:16.793 回答