我在这里做了一个快速搜索,但无法找到我想要的答案。这就是我想做的事情:
我正在创建一个简单的事件注册跟踪系统。
我有一个名为registration的数据库,在该数据库中我创建了 10个表,名为table1,table2 ..... table10。所有这些表只有一列:user_id
我还有一个名为 userinfo 的表,此表有2列名为user_id
和username
。
我需要创建一个查询,检查所有表中是否存在 ANY user_id 。如果是,它将从userinfo表中显示该用户的名称。
我正在考虑使用count函数来获取每个user_id的总计数,如果我得到11的计数,它会告诉我每个表中都存在 user_id 。
但我不确定这是否正确。任何想法将不胜感激。我不善于查询,所以如果有人也可以发布一个例子。非常感谢。
答案 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
);