请问 select tm.*,count(tm.market_id) count2 from t_market tm left join t_store2 ts on tm.market_id = ts.store_market left join t_business tb on ts.store_id = tb.store_id where tb.store_id is null GROUP by tm.market_id 和这个select count(ts.store_market) count FROM t_market tm,t_store2 ts where tm.market_id = ts.store_market GROUP BY ts.store_market 怎么结合
时间: 2024-02-05 11:03:07 浏览: 85
insert into tbl() select * from tb2中加入多个条件
您可以将这两个查询结合起来,使用子查询的方式来实现。具体的 SQL 查询语句如下:
```
SELECT
tm.*,
(SELECT COUNT(ts.store_market) FROM t_store2 ts WHERE ts.store_market = tm.market_id) AS count1,
COUNT(tm.market_id) AS count2
FROM t_market tm
LEFT JOIN t_store2 ts ON tm.market_id = ts.store_market
LEFT JOIN t_business tb ON ts.store_id = tb.store_id
WHERE tb.store_id IS NULL
GROUP BY tm.market_id;
```
这个查询语句中,使用了子查询来计算每个市场(t_market)对应的 t_store2 表中的记录数量。同时,使用了 COUNT() 聚合函数来计算每个市场在 t_market 表中的记录数量。最后,通过 GROUP BY 子句来按照市场 ID 进行分组。
请注意,这个查询语句中使用了左连接(LEFT JOIN)和子查询的方式,可能会对查询性能产生一定的影响。如果您的数据量比较大,可以考虑优化查询语句或调整数据库结构来提高查询性能。
阅读全文