单个语句中的两个select语句

时间:2011-08-28 23:35:29

标签: sql select join

我基本上有两个名为imagesusers的表。 images表包含以下字段:

i_id | s_id | u_id | name | filename |

u_idu_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

我可以使用两个查询,但我正在尝试减少我的应用程序运行的查询,我知道有一种方法可以将它组合成一个查询,但我只是不知道它:<

有谁知道答案?谢谢!

2 个答案:

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