我需要通过他的身份证明用户年龄。简单。 问题是,在我第一次不知道他们的ID时,我唯一知道的是它在特定的表中,我们将其命名为“第二”。
SELECT `age` FROM `users` WHERE `userid`=(SELECT `id` FROM `second`)
我该怎么做?
答案 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 )