mysql - 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 值?
解决方案
你可以使用UNION来做到这一点:
SELECT NAME, ID, 'A' as FROM_TABLE from A
UNION ALL
SELECT NAME, ID, 'B' as FROM_TABLE from B
ORDER by NAME;
推荐阅读
- apache-kafka - KSQLDB:按字段分组事件
- c# - C# 防火墙规则不适用于我的 .exe 文件
- mysql - 具有多行的 SQL 子查询
- jenkins - 如何将 cron 作业配置为每周每 30 分钟运行一次,周六和周日仅每 2 小时运行一次?
- flutter - 颤振飞镖时间戳到时间码没有正确转换
- typescript - 如何使用 Typescript 在安全规则单元测试中正确初始化 Firestore 测试应用程序?
- react-native - 什么是 react-native-cli 和 @react-native-community/cli?
- linux - Linux CentOS 服务器从不转储内核
- java - elasticsearch插件中不允许位置参数
- angular - 如何实现角度响应轮播