2011-08-28 121 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'