一个查询中有两个select语句

时间:2012-02-20 02:27:33

标签: mysql sql

我需要通过他的身份证明用户年龄。简单。 问题是,在我第一次不知道他们的ID时,我唯一知道的是它在特定的表中,我们将其命名为“第二”。

SELECT `age` FROM `users` WHERE `userid`=(SELECT `id` FROM `second`)

我该怎么做?

5 个答案:

答案 0 :(得分:6)

SELECT age FROM users WHERE userid IN (SELECT id FROM second)

这应该有效

答案 1 :(得分:3)

你的例子

SELECT `age` FROM `users` WHERE `userid`=
  (SELECT `id` FROM `second`  
   WHERE `second`.`name` = 'Berna')
只要您添加where标准,

就应该有效。这称为子查询,在MySQL 5中受支持。参考http://dev.mysql.com/doc/refman/5.1/en/comparisons-using-subqueries.html

答案 2 :(得分:2)

SELECT age FROM users inner join Second on users.UserID = second.ID

内连接比子选择

更有效

答案 3 :(得分:2)

SELECT age FROM users WHERE userid IN (SELECT id FROM second)

但最好是

SELECT u.age FROM users u INNER JOIN second s ON u.userid = s.id

答案 4 :(得分:1)

您想使用'in'语句:

select * from a
    where x=8 and y=1 and z in (
        select z from b where x=8 and active > '2010-01-07 00:00:00' group by z
    )