首页 > 解决方案 > 如何在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;

只会给我一个卖家或买家,但我想得到两者的结果

标签: mysqlsqldatabase

解决方案


您必须加入 2 个test_userto的副本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份用于返回买家姓名。


推荐阅读