我有一个名为 的表Users
,其中有两个字段username
和password
。同样,我还有一张表,其中的字段和username
字段很少。
我有一个登录页面,我必须检查表中是否存在username
和,如果存在,我想从与该 对应的另一个表中获取数据。password
Users
username
单个用户可以有多个数据,因此我必须为各个用户获取所有数据。我该怎么做?
我有一个名为 的表Users
,其中有两个字段username
和password
。同样,我还有一张表,其中的字段和username
字段很少。
我有一个登录页面,我必须检查表中是否存在username
和,如果存在,我想从与该 对应的另一个表中获取数据。password
Users
username
单个用户可以有多个数据,因此我必须为各个用户获取所有数据。我该怎么做?
您可能想要使用子查询...有效地像这样的两个查询
mysql> select * from other
-> where name =
-> (select name from users where name = '<USER_NAME>' and password = '<PASSWORD>');
这是一个例子:
mysql> select * from users;
+------+------+----------+
| id | name | password |
+------+------+----------+
| 1 | one | one |
| 2 | two | two |
+------+------+----------+
2 rows in set (0.00 sec)
mysql> select * from other;
+------+-------+
| id | name |
+------+-------+
| 20 | two11 |
| 10 | two |
| 30 | two |
+------+-------+
3 rows in set (0.00 sec)
mysql> select * from other where name = (select name from users where name = 'two' and password = 'two');
+------+------+
| id | name |
+------+------+
| 10 | two |
| 30 | two |
+------+------+
2 rows in set (0.00 sec)
使用两个查询。如果用户名和密码匹配,则获取用户 ID。然后在他们登录后使用该 id 来获取额外的数据。
我假设您正在与关系数据库交谈。如果您的意思是在将“用户名”连接到“数据”表之后,“数据”表中的多个条目可能由相同的用户名作为键,那么这种答案本身,使用相同的键,但放置不同的数据,DBMS 应该处理其余的。
如果您担心数据表中元组的唯一性,那么
CONSTRAINT tableName_a_b_pk PRIMARY KEY (a,b) 其中 be 是表“数据”的判别式。
select table2.* from table2, user where table2.username=user.username AND user.username='username' AND user.password='password'