基于PHP中以前查询的结果从MySQL中选择数据[重复]

webghufk  于 5个月前  发布在  Mysql
关注(0)|答案(4)|浏览(67)

此问题在此处已有答案

Joining 2 tables in SELECT(MYSQL/PHP)(6个回答)
23天前关闭
我有两个MySQL表:session 包含列 username、lastSeen、currentlyOnlineusers 包含列 username、userLocation、userAge
我需要选择当前在线用户的信息(userLocation,userAge)(其中 currentlyOnline 等于1)。我想从 session 表中选择用户名,然后用另一个查询在循环中选择信息,但也许有更简单的解决方案?
感谢您的输入:)

rjzwgtxy

rjzwgtxy1#

使用联接:

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

字符串
?是表示他们在线的任何值。我还将用户名添加到select中,因为您可能需要这个,并且运行另一个查询是愚蠢的。

5uzkadbs

5uzkadbs2#

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

nvbavucw

nvbavucw3#

一个连接将完美地做到这一点:

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

字符串

hmae6n7t

hmae6n7t4#

在这里使用join。从这里可以看出username是带有users表的会话表的forignkey。在这种情况下,使用此查询。

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

字符串
使用foriegnkey作为一个表的整数和主键总是更好的。这里,如果你在users表中保持id作为主键,在session表中保持user_id作为forignkey,并使用它进行连接,那就太好了。

相关问题