我有以下2个表:
Users (user_id, user_name, ... )
Photo (photo_id, user_id, ...)
如何仅通过提供photo_id
来获取user_name
。我是否需要进行2次查询,首先通过提供user_name来查询从Users表中获取user_id,在获得user_id后,我应该通过提供user_id来执行第二次查询以获取photo_id。
OR 这不是一个好方法,而是我应该加入表格并通过为用户名提供单个查询来获取photo_id?应该怎么做? 感谢。
答案 0 :(得分:1)
我会在一个查询中使用连接执行此操作:
select Users.user_id, Photo.photo_id
from Photo
inner join Users on Users.user_id = Photo.user_id
where Users.user_name = 'YOUR NAME HERE'
注意:我选择了user_id
,因为多个用户可以使用相同的名称(可能)
答案 1 :(得分:0)
SELECT u.user_id,p.photo_id FROM users AS u INNER JOIN photo AS p ON u.user_id = p.user_id WHERE u.user_name ='$ username';
答案 2 :(得分:0)
这是联接的目的:
select u.*, p.* from users u join photo p on p.user_id = u.user.id where u.user_name = 'the name'
在这种情况下进行两次查询会显着降低性能,因为源代码将查询提交到数据库引擎,查询编译等的开销。