1

我在这里进行了快速搜索,但无法找到我正在寻找的答案。这是我想做的:

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

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

我还有一个名为userinfo的表,该表有 2 个名为user_idand的列username

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

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

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

4

1 回答 1

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
);
于 2013-03-17T17:42:09.410 回答