mysql两个表字段关联查询_mysql一张表多个字段关联另一张表查询

本文介绍了如何使用MySQL进行多字段关联查询,通过订单表和用户表的连接查询展示实例。同时,文章探讨了子查询的使用,并指出在某些情况下,表关联查询的效率优于子查询,因为子查询可能导致笛卡尔积。总结中提到,如果需要唯一记录,子查询是更好的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如下:一张订单表多个字段关联用户表:

1.链表查询

SELECT cu.id AS 'id',

cu.version AS 'version',

cu.cid AS 'cid',

cu.uid AS 'uid',

cu.shopName AS 'shopName',

cu.address AS 'address',

cu.totalPrice AS 'totalPrice',

cu.orderType AS 'orderType',

cu.state AS 'state',

cu.cCreateTime AS 'cCreateTime',

cu.decorate AS 'decorate',

cu.area AS 'area',

cu.roomArea AS 'roomArea',

cu.machinePrice AS 'machinePrice',

cu.caid AS 'caid',

cu.cooperationtypeid AS 'cooperationtypeid',

cu.cooperationRebate AS 'cooperationRebate',

cu.cooperationPrcie AS 'cooperationPrcie',

cu.machineDiscount AS 'machineDiscount',

cu.alreadyPaid AS 'alreadyPaid',

cu.updateTime AS 'updateTime',

cu.cooperationdeposit AS 'cooperationdeposit',

cu.updateUserid AS 'updateUserid',

cu.overseerId AS 'overseerId',

cu.decorationQuotation AS 'decorationQuotation',

cu.machineDeposit AS 'machineDeposit',

us1.uName AS 'serviceuName',

us2.uName AS 'updateName'

FROM customerorder AS cu

LEFT JOIN userdetail AS us1

ON us1.id = cu.uid

LEFT JOIN userdetail AS us2

ON us2.id = cu.updateUserid;

2.子查询

SELECT cu.id AS 'id',

cu.version AS'version',

cu.cid AS'cid',

cu.uid AS'uid',

cu.shopName AS'shopName',

cu.address AS'address',

cu.totalPrice AS'totalPrice',

cu.orderType AS'orderType',

cu.state AS'state',

cu.cCreateTime AS'cCreateTime',

cu.decorate AS'decorate',

cu.area AS'area',

cu.roomArea AS'roomArea',

cu.machinePrice AS'machinePrice',

cu.caid AS'caid',

cu.cooperationtypeid AS'cooperationtypeid',

cu.cooperationRebate AS'cooperationRebate',

cu.cooperationPrcie AS'cooperationPrcie',

cu.machineDiscount AS'machineDiscount',

cu.alreadyPaid AS'alreadyPaid',

cu.updateTime AS'updateTime',

cu.cooperationdeposit AS'cooperationdeposit',

cu.updateUserid AS'updateUserid',

cu.overseerId AS'overseerId',

cu.decorationQuotation AS'decorationQuotation',

cu.machineDeposit AS'machineDeposit',

(SELECT uName FROM userdetail WHERE id= cu.uid) AS 'serviceuName',

(SELECT uName FROM userdetail WHERE id= cu.updateUserid) AS 'updateName'FROM customerorder AS cu;

总结:

1,表关联的效率要高于子查询,因为子查询走的是笛卡尔积

2,表关联可能有多条记录,子查询只有一条记录,如果需要唯一的列,最好走子查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值