根据另一个表中的ID查询一个表中的数据

时间:2012-12-17 19:06:56

标签: mysql sql database roundcube

我正在尝试从Roundcube导出数据,它有2个我需要的表,用户和联系人。目前我正在使用它来过滤用户:

 SELECT `user_id` FROM `users` WHERE `username` LIKE "%mysite.com%"

但是如何从联系人表格导出数据,user_id匹配上面过滤的user_id列表?我必须使用临时表吗?我从未做过加入。我不想要加入的2个表的漂亮列表,我想使用SELECT子句导出数据来过滤它并重新导入它,所以我需要原始格式的数据。

2 个答案:

答案 0 :(得分:2)

您还可以使用子查询:

SELECT *
FROM `contacts`
WHERE `user_id` IN (
    SELECT `user_id` FROM `users` WHERE `username` LIKE "%mysite.com%"
)

答案 1 :(得分:1)

如果表格通过user_id相关,您可以加入:

SELECT c.* 
FROM `users` u
INNER JOIN `contacts` c
    on u.`user_id` = c.`user_id` 
WHERE u.`username` LIKE "%mysite.com%"

如果您需要帮助,请在此处学习加入语法,这是一个很棒的visual explanation of joins