2012-01-14 134 views
0

像问题说的是有没有更好的方式来写:有没有更好的方法来编写这个MySQL查询?

SELECT clients_lists.*, 
     COUNT(clients_lists_relationships.clientid) 
FROM clients_lists 
     LEFT JOIN clients_lists_relationships 
     ON clients_lists.listid = clients_lists_relationships.listid 
WHERE clients_lists.parentid = 1 
GROUP BY clients_lists.listid; 
+0

看起来很好。你想达到什么目的? – 2012-01-14 10:30:45

+1

尝试获取每个列表中的用户列表和成员数量。 – 2012-01-14 10:31:41

回答

3

不是真的。查询对我来说看起来很好。你可以尝试使用别名更好的可读性:

SELECT c.*, 
     COUNT(r.clientid) 
FROM clients_lists c 
     LEFT JOIN clients_lists_relationships r 
     ON c.listid = r.listid 
WHERE c.parentid = 1 
GROUP BY c.listid; 

但它不会真正使技术差异(不,我知道)。

还要确保clients_lists.listidclients_lists_relationships.listid具有相同的数据类型和长度,并进行索引。这一定会帮助您查询的性能。

相关问题