我基本上有两个名为images
和users
的表。 images
表包含以下字段:
i_id | s_id | u_id | name | filename |
u_id
是u_id
表中users
字段的外键,其中包含以下字段:
u_id | username | password | email |
我正在运行这样的查询:
SELECT s_id, u_id, name, filename, filesize FROM images WHERE name = 'fYhWId'
这将返回用户的u_id
等。但我想返回用户的用户名,而不是他们的u_id。所以基本上,在SELECT语句中,我也想运行:
SELECT username FROM users WHERE u_id = 1
我可以使用两个查询,但我正在尝试减少我的应用程序运行的查询,我知道有一种方法可以将它组合成一个查询,但我只是不知道它:<
有谁知道答案?谢谢!
答案 0 :(得分:7)
您需要加入表格
SELECT i.s_id, i.u_id,u.username, i.name, i.filename, i.filesize
FROM images i
INNER JOIN users u
on u.u_id = i.u_id
WHERE i.name = 'fYhWId'
答案 1 :(得分:3)
SELECT username FROM users WHERE u_id = (SELECT TOP 1 u_id FROM images WHERE name = 'fYhWId')
或
SELECT username FROM users WHERE u_id IN (SELECT u_id FROM images WHERE name = 'fYhWId')
或
SELECT username, s_id, images.u_id, name, filename, filesize
FROM images
INNER JOIN users on images.u_id = users.u_id
WHERE name = 'fYhWId'