2013-12-03 223 views
1

我在這裏有點迷路。我想將這兩個查詢合併爲一個,以避免兩個連接並簡化代碼。SQL加入兩個查詢

"SELECT uname FROM Projects WHERE id IN (SELECT MAX(id) FROM Projects)" 

"SELECT name FROM Users WHERE username like"+"'"+ uname +"'" 

現在我正在使用兩個查詢,並將第一個的結果放入第二個。 我確信這兩個查詢可以成爲一個,但我不知道該怎麼做。

回答

1

您可以簡單地使用=而不是LIKE,因爲我沒有使用圖案符號,如%

SELECT a.name 
FROM Users a 
     INNER JOIN Projects b 
      ON a.username = b.uname 
WHERE b.ID = (SELECT MAX(id) FROM Projects) 
+1

完美的作品。非常感謝 – FeliceM

1

您可以嘗試像這樣使用INNER JOIN考慮到雙方的表都是通過User_ID

SELECT u.name 
FROM Users u INNER JOIN Projects p ON u.username = p.uname 
WHERE p.ID = (SELECT MAX(id) FROM Projects) 
+0

感謝您的幫助,但我試圖避免uname變量。 – FeliceM

+0

真的很感謝。我可以說,+ – FeliceM

+0

@ FeliceM: - 是的,雖然我現在已經更新了我的答案;)希望這也能起作用 –

1

我覺得下面的查詢將工作鏈接:

SELECT name FROM Users WHERE username in 
    (SELECT uname FROM Projects WHERE id IN 
     (SELECT  MAX(id) FROM Projects)) 
+0

賓果!這個是完美的。 +,中國人首先回答,並且也在工作。非常感謝。 – FeliceM

+0

不客氣。 –