COALESCE all fields in different tables JOIN

余生长醉 提交于 2019-12-13 05:19:30

问题


I have 2 tables:


Table 1 (with ENGLISH content):

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

Table 2 (with PORTUGUESE content):

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

Contents example:

Table 1 (with ENGLISH content):

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

Table 2 (with PORTUGUESE content):

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

Perfect result:

Result:

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

Is the same of this question and result: stackoverflow, but i don't know which fields are NULL and how much fields have in tables. I know the alternative table (portuguese) have same column name. I need something like COALESCE(table1.*,table2.*), but this don't work.

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

But in Table 2, may not have the record id "4"…

How can i get that result?

Thanks


回答1:


column name should be coalesced seperately

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


来源:https://stackoverflow.com/questions/17514160/coalesce-all-fields-in-different-tables-join

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!