繁体   English   中英

如何在MySQL中进行查询而不进行N + 1查询

[英]How to query without doing N+1 query in MySQL

我有2张桌子

users_table
id | first_name
1 | first name1
2 | first name2

addresses_table
id | user_id | address
1 | 1 | first address of user 1
2 | 1 | second address of user 1
3 | 2 | first address of user 2
4 | 2 | second address of user 2

我想要这样的表结果,第一列是users_table first_name,第二列是每个用户的爱好,用逗号分隔

<table>
<tr>
<td>first name1</td><td>first address of user 1, second address of user 1</td>
</tr>
<tr>
<td>first name2</td><td>first address of user 2, second address of user 2</td>
</tr>
</table>

如果我必须查询,则必须select * from users_table然后select * from addresses_table where user_id = 1获取每个用户的地址,例如select * from addresses_table where user_id = 1 fromaddressstable,这不是很有效,可以使用ORM来防止,但是我想知道我们可以防止N使用SQL +1查询

您可以使用以下查询

从用户表usrTable中选择first_name,group_concat(address,',')作为地址usrTable.id = addTable.user_id上的组由first_name组成的addressstable addTable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM