2010-08-03 70 views
1

只要我道歉,因爲我不知道或能夠解釋確切的麻煩。mysql查詢,兩個select

如何從表user_address獲取值。

如何在第二個「select」中傳遞用戶ID。

select id, name, age, 
    (select address 
    from user_address 
    where user_id = ??user.id 
    ORDER BY address_name 
    LIMIT 1) AS address 
from user 
+1

「我很抱歉,因爲我不知道或者不能夠解釋確實麻煩。「即使您不明白,您也可以複製並粘貼所獲得的錯誤消息。這對我們幫助很大。 – 2010-08-03 07:27:44

回答

2

作爲已經存在的附錄,您可能不應該依賴數據庫中行的特定順序來提供某種語義含義。如果你有識別地址你後的一些更好的方法,你可以使用一個連接,如:

select id, name, age, address 
from user 
inner join user_address 
on user.id=user_address.user_id 
where address_type='Home'

(調節where子句等等)

0

我假設你想得到像用戶的第一個地址 (每個用戶可能有幾個地址)

- 有另一種選擇,你想找到第一個人住在給定的地址(下面的解決方案doesn' t解決這種情況)

SELECT u.id,u.name,u.age,a.ua as address 
FROM 
(
    SELECT * FROM users 
) u 
    INNER JOIN 
(
    SELECT userID, MIN(address) AS ua 
    FROM user_address 
    GROUP BY userID 
) a 
on u.id = a.userID 

的語法是SQLServer的 - 如果你使用MSACCESS(你可以先用,而不是分鐘)

希望它可以幫助 阿薩夫