MySql的join(连接)查询 (三表 left join 写法)



1、内连接:将两个表中存在连结关系的字段符合连接条件的记录形成记录集

Select A.name,B.name from A inner join B on A.id=B.id和

Select A.name,B.name from A,B where A.id=B.id结果是一样的(内连接的inner关键字可省略);

2、外连接:分为左外连接和右外连接

左连接A、B表结果包括A的全部记录和符合条件的B的记录。

右联结A、B表的结果和左联结B、A的结果是一样的,也就是说:

Select A.name,B.name from A Left Join B on A.id=B.id和

Select A.name,B.name from B Right Join A on B.id-A.id执行后的结果是一样的。

3、全联结

4、无联结

5、三表联结查询

select username,psw,gname,tel from (t1 left join t2 on t1.t1_id=t2.t1_id) left join t3 on t1.t1_id=t3.t1_id

6、终极的三表联结查询

items:商品表,item_visit_stats:商品访问表,item_trade_stats:商品销售表

SELECT i.num_iid, i.title, i.price, SUM(iv.user_visits) AS uv,it.buyer_num,it.item_num,it.item_num*i.price AS turnover
FROM (items AS i RIGHT JOIN item_visit_stats AS iv ON i.num_iid=iv.num_iid)
LEFT JOIN (SELECT num_iid,SUM(buyer_num) AS buyer_num,SUM(item_num) AS item_num FROM item_trade_stats
WHERE seller_nick="XXXX" AND business_day BETWEEN '2010-08-14' AND '2010-08-15' GROUP BY num_iid)
AS it ON it.num_iid=iv.num_iid
WHERE i.nick="XXXX" AND iv.business_day BETWEEN '2010-08-14' AND '2010-08-15'
GROUP BY i.num_iid ORDER BY uv DESC

MySQL中,LEFT JOIN用于连接两个表并获取左表的全部记录,即使右表没有对应的匹配记录。基本语法如下: ``` SELECT * FROM table1 LEFT JOIN table2 ON condition ``` 在这个语句中,table1是左表,table2是右表,condition是连接条件。LEFT JOIN会返回左表和右表的所有匹配记录,如果右表没有匹配的记录,则会返回NULL值。 关于三表连查的LEFT JOIN,可以使用相同的语法结构来连接三个表。例如,如果要连接items、item_visit_stats和item_trade_stats这三个表,可以这样写: ``` SELECT * FROM items LEFT JOIN item_visit_stats ON items.num_iid = item_visit_stats.num_iid LEFT JOIN (SELECT num_iid, SUM(buyer_num) AS buyer_num, SUM(item_num) AS item_num FROM item_trade_stats) AS trade_stats ON items.num_iid = trade_stats.num_iid ``` 这个查询语句将会返回items表的所有记录,并根据num_iid字段连接item_visit_stats和item_trade_stats表。注意,在连接item_trade_stats表时,使用了子查询来计算SUM(buyer_num)和SUM(item_num)。 这样的LEFT JOIN语句可以帮助我们获取三个表的关联数据,并且即使右表没有匹配的记录,左表的记录也会被包含在结果中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MySqljoin连接查询三表 left join 写法)](https://blog.csdn.net/weixin_42202605/article/details/113254432)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [MySQLLEFT JOIN连接与RIGHT JOIN连接的实例教程](https://download.csdn.net/download/weixin_38653687/13695747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值