面试题答案
一键面试- 思路:
- 使用
JOIN
操作将三个表根据id
字段进行连接。 - 对于同一
id
对应不同数据的情况,可以通过COALESCE
函数来处理。COALESCE
函数会返回参数列表中第一个非NULL
的值,这样可以优先选择某个表中的数据作为合并后的数据,保证数据的一致性。
- 使用
- SQL示例:
CREATE TABLE new_table AS
SELECT
A.id,
COALESCE(A.age, B.age, C.age) AS age,
-- 处理其他字段,如name字段
COALESCE(A.name, B.name, C.name) AS name
FROM
A
LEFT JOIN B ON A.id = B.id
LEFT JOIN C ON A.id = C.id;
在上述示例中,使用 LEFT JOIN
将表 B
和 C
连接到表 A
上,以表 A
中的 id
为基准。对于 age
字段和 name
字段,使用 COALESCE
函数优先选择 A
表中的值,如果 A
表中对应值为 NULL
,则选择 B
表中的值,若 B
表中也为 NULL
,则选择 C
表中的值。这样在合并时可以处理同一 id
对应不同数据的情况,保证数据的一致性和准确性。