COALESCE不同表格中的所有字段JOIN

时间:2013-07-07 16:52:57

标签: php mysql sql coalesce

我有两张桌子:


表1(含英文内容):

id (primary key, auto increment)
title
text
...

表2(含有葡萄牙语内容):

id (foreing Key to table 1 ID)
title
text
…

目录示例:

表1(含英文内容):

id: 4
title: Hello World!
text: hello world, i need you!
… : anothers fields

表2(含有葡萄牙语内容):

id: 4
title: Ola mundo
text: NULL
…: another fields with NULL values OR portuguese contents

完美的结果:

结果:

id: 4
title: Ola mundo
text: hello world, i need you!
…: another fields with english content with NULL values in portuguese table OR portuguese content if is not null values

这个问题和结果是一样的:stackoverflow,但我不知道哪些字段是NULL以及表中有多少字段。我知道替代表(葡萄牙语)具有相同的列名。 我需要像COALESCE(table1。*,table2。*)这样的东西,但这不起作用。

 SELECT COALESCE(table1.*, table2.*) FROM table1 LEFT JOIN table2 USING(id) WHERE id = 4;

但在表2中,可能没有记录ID“4”......

我怎样才能得到这个结果?

由于

1 个答案:

答案 0 :(得分:0)

列名应单独合并

SELECT  a.id,COALESCE(b.title, a.title) Title,COALESCE(b.text, a.text) Text
FROM    Table1 a LEFT JOIN Table2 b
ON a.id = b.id