Mysql查询从2个表中获取数据

时间:2011-04-07 10:48:14

标签: mysql database

我有以下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?应该怎么做? 感谢。

3 个答案:

答案 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'

在这种情况下进行两次查询会显着降低性能,因为源代码将查询提交到数据库引擎,查询编译等的开销。

相关问题