2011-08-28 118 views
2

我基本上有两个表,分别叫做imagesusers。该images表具有以下字段:在一条语句中的两条select语句

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

我可以用两个查询这一点,但我试图削减查询我的应用程序运行,并且我知道有一个方法来结合成一个查询,但我只是不知道它:<

有谁知道答案?谢谢!

回答

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' 
+0

谢谢你,你是最容易理解的:) – John

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'