最近在构建一个 Web 应用程序时,我开始考虑从我所做的查询返回的信息:
查找用户信息和(为简单起见)与该用户相关联的电话号码。像这样简单的东西:
SELECT a.fname, a.lname, b.phone
FROM users a
JOIN users_phones b
ON (a.userid = b.userid)
WHERE a.userid = 12345;
这里没问题(是的,我正在防止注射等,而不是这个问题的重点)。但是,当我考虑返回的数据时,我会返回(可能)几行信息,每行都带有该用户名。假设单个用户有 1000 个与之关联的电话号码。这是每个电话都会返回的名字和姓氏。我们还假设我想要返回的不仅仅是该用户的名字和姓氏,实际上我开始返回相当多的额外行,而我实际上只需要一次。
是否存在对数据库进行多次调用“更合适”的情况?
例如
SELECT firstname, lastname
FROM users
WHERE userid = 12345;
SELECT phone
FROM users_phones
WHERE userid = 12345;
如果答案是肯定的,是否有一种好的/正确的方法来确定何时使用多个查询而不是单个查询?