【发布时间】:2013-12-25 19:49:07
【问题描述】:
我的数据库中有两个关于我的用户(图书馆员和学生)的登录详细信息的表我已将用户的详细信息分成 2 个单独的表 tblUserLibrarian 和 tblUserStudent;一个给图书馆员,一个给学生。每个表中的主键是用户名或 ID(LibrarianID 和 StudentID)。
表格的轮廓是这样的:
tblUserStudent
StudentID Password FirstName LastName
S1201235 pass3 Jane Smith
S1201289 pass5 Pass Word
S1202009 pass2 John Smith
tblUserLibrarian
LibrarianID Password
L1094565 pass4
L1202836 password123
L1202908 qwerty
L1212345 pass3
当任一用户尝试使用他们的用户名(即他们的 ID)登录时,我遇到了一个问题。我想检查他们的用户名是否存在于任一表中,并从存在用户名的表中返回所有字段。目前我只能想到一种方法,即执行 2 个查询来检查这一点,但我觉得这可以在一个查询中完成。我查看了 JOINS 和 UNIONS,但我尝试过的所有方法似乎都不起作用。
我最近的查询是:
SELECT TOP 1 * FROM tblUserStudent,tblUserLibrarian
WHERE StudentID = "S1202836" OR LibrarianID = "S1202836"
但这会从两个表中返回行,如果用户输入的用户名存在,我只想从一个表中返回用户的详细信息。
我正在使用 MS Access 2010 进行查询。
【问题讨论】:
-
不,它们只存在于任一表中,而不存在于两者中。 “S1202836”应该是一个变量,查询应该解释为“检查用户名是否存在于任一表中,而不是两者”
-
SELECT whatever FROM table1, table2 WHERE ...真的有用吗?!
标签: sql database ms-access ms-access-2010