mysql - 显示所有表中存在的值

时间:2013-03-17 17:35:19

标签: mysql

我在这里做了一个快速搜索,但无法找到我想要的答案。这就是我想做的事情:

我正在创建一个简单的事件注册跟踪系统。

我有一个名为registration的数据库,在该数据库中我创建了 10个表,名为table1,table2 ..... table10。所有这些表只有一列:user_id

我还有一个名为 userinfo 的表,此表有2列名为user_idusername

我需要创建一个查询,检查所有表中是否存在 ANY user_id 。如果是,它将从userinfo表中显示该用户的名称。

我正在考虑使用count函数来获取每个user_id的总计数,如果我得到11的计数,它会告诉我每个表中都存在 user_id

但我不确定这是否正确。任何想法将不胜感激。我不善于查询,所以如果有人也可以发布一个例子。非常感谢。

1 个答案:

答案 0 :(得分:1)

您只需对user_id字段上的所有表执行内部联接,并仅在联接查询中存在结果时才显示userinfo表中的用户名:

SELECT username FROM userinfo it WHERE EXISTS (

SELECT user_id FROM table1 t1 
INNER JOIN Table2 USING(user_id)
INNER JOIN Table3 USING(user_id)
INNER JOIN Table4 USING(user_id)
INNER JOIN Table5 USING(user_id)
INNER JOIN Table6 USING(user_id)
INNER JOIN Table7 USING(user_id)
INNER JOIN Table8 USING(user_id)
INNER JOIN Table9 USING(user_id)
INNER JOIN Table10 USING(user_id)
WHERE t1.user_id = it.user_id
);