2010-08-03 67 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(你可以先用,而不是分钟)

希望它可以帮助 阿萨夫