首页 > 解决方案 > mysql连接两个表-如何根据值最初来自哪里给出不同的值?

问题描述

假设我有两张桌子 A,B


    A: NAME, ID, BIRTHDAY, COUNTRY
---------------------------------------
       john, ab123, 12/21/1999, USA
       JANE, as111, 11/02/1956, FRANCE

    B: NAME, ID, SALARY
---------------------------------------
       MARY, AS111, 12333


I WANT TO JOIN TWO TABLES WITH THESE COLUMNS :
NAME, ID, FROM_WHERE
-------------------------------
john, ab123, 'A'
JANE, as111, 'A'
MARY, AS111, 'B'

如果值来自 A,FROM_WHERE 显示“A”,如果值来自 B,则显示“B”。

SELECT NAME, ID FROM A JOIN B USING (NAME, ID)

使用上面的查询,我应该添加什么来获取 FROM_WHERE 值?

标签: mysqljoin

解决方案


你可以使用UNION来做到这一点:

SELECT NAME, ID, 'A' as FROM_TABLE from A 
UNION ALL
SELECT NAME, ID, 'B' as FROM_TABLE from B 
ORDER by NAME;

推荐阅读