mysql - 如何在sql中的两个表上连接多个列
问题描述
我有两个如下表
create table test_user (
id INT AUTO_INCREMENT PRIMARY KEY,
name varchar(64)
);
create table test_info(
id INT AUTO_INCREMENT PRIMARY KEY,
sellerId INT,
buyerId INT,
x varchar,
y varchar,
z varchar
);
如何在同一条语句中从 test_user 表中获取表 test_info 中的所有信息以及买方姓名和卖方姓名?
select * from test_table join test_user on sellerId = test_user.id;
or
select * from test_table join test_user on buyerId = test_user.id;
只会给我一个卖家或买家,但我想得到两者的结果
解决方案
您必须加入 2 个test_user
to的副本test_info
:
SELECT ti.*, s.name seller_name, b.name buyer_name
FROM test_info ti
INNER JOIN test_user s ON ti.sellerId = s.id
INNER JOIN test_user b ON ti.buyerId = b.id;
第1份test_user
用于返回卖家姓名,第2份用于返回买家姓名。
推荐阅读
- jquery - 在页脚工具栏上带有 MENUTOOLBAR 和 Listbox 的 Jqgrid
- c - 如何使 Python.h 文件在 Ubuntu 中工作?
- java - 如何将具有多个相同键和列表的多个地图组合为值?
- php - 安装后 GD 库仍然丢失
- php - 注册成功后跳转到首页
- kubernetes - ERR_TOO_MANY_REDIRECTS 302 与 ELK Operator 7.10.0 使用 Server.basePath
- java - 检查项目的 Maven 构建生命周期的特定阶段的目标
- json - 是否有用于自动刷新 JSON 展平过程的原生雪花功能?
- python - matplotlib 为不同的子图设置定位器
- c# - 从片段返回到上一个列表视图的 PopBackStack 不再显示数据 xamarin.android