就像问题所说,有更好的方式来写这个:
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 :(得分: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.listid
和clients_lists_relationships.listid
具有相同的数据类型和长度并且已编制索引。这肯定有助于查询的性能。