根据PHP中先前查询的结果从MySQL中选择数据

时间:2013-06-10 16:01:08

标签: php mysql

我有两个MySQL表: 会话,其中包含用户名,lastSeen,CurrentlyOnline 列 和 用户,其中包含用户名,userLocation,userAge

我需要选择当前在线用户的信息( userLocation,userAge )(其中 CurrentlyOnline 等于1)。我正在考虑从会话表中选择用户名,然后在另一个查询的循环中选择信息,但是可能有一个更简单的解决方案?

感谢您的意见:)

4 个答案:

答案 0 :(得分:0)

使用加入...

SELECT u.userLocation, u.userAge, u.username
FROM users u, session s
WHERE u.username = s.username
AND s.currentlyOnline = ?

?是任何价值意味着他们在线...我还在select中添加了用户名,因为你可能想要这个以及愚蠢的运行另一个查询。

答案 1 :(得分:0)

您可以使用JOIN。 例:     SELECT userLocation,userAge FROM users INNER JOIN session ON userss.username = session.username WHERE session.currentlyOnline = 1

答案 2 :(得分:0)

联接将完美地做到这一点:

SELECT users.userLocation, users.userAge, users.username
FROM users
JOIN session ON users.username = session.username
WHERE session.currentlyOnline = '1'

答案 3 :(得分:0)

在这里使用join。从这里可以看出用户名是用户表的会话表的forignkey。在这种情况下,请使用此查询。

select  userLocation, userAge from users as u JOIN session as s ON u.username = s.username AND s.currentlyOnline = 1 

最好将foriegnkey用作一个表的整数和主键。这里,如果你将id作为primarykey保存在users表中,而user_id保存为session表中的forignkey,并使用它来加入,那就太棒了。