SQL中如何关联两张表多列,同时获取买家与卖家的名称?
正确实现SQL
你需要对test_user表做两次别名关联,分别对应卖家、买家两个身份,即可同时返回两个名称字段:
SELECT ti.*, u_seller.name AS seller_name, u_buyer.name AS buyer_name FROM test_info ti -- 第一次关联用户表,匹配卖家ID LEFT JOIN test_user u_seller ON ti.sellerId = u_seller.id -- 第二次关联用户表,匹配买家ID LEFT JOIN test_user u_buyer ON ti.buyerId = u_buyer.id;
说明
- 你之前写法里的
test_table属于笔误,实际业务表名为test_info - 这里使用
LEFT JOIN是为了避免sellerId/buyerId为空、或者对应ID在用户表不存在时,整行交易数据被过滤;如果你能确认两个ID一定存在对应用户,可以换成INNER JOIN - 别名可以自定义,只要区分开两次关联的用户表即可,取name字段时必须加别名前缀,否则会报字段冲突错误
内容的提问来源于stack exchange,提问作者nightograph
相关产品推荐
相关产品推荐

