我有一个名为Users
的表格,其中有两个字段username
和password
。同样,我还有一个表格,其中我有很少的字段和username
字段。
我有一个登录页面,我必须检查username
表中是否存在password
和Users
,如果存在,我想从另一个表中获取数据对应于username
。
单个用户可以有多个数据,因此我必须获取相应用户的所有数据。我该怎么办?
答案 0 :(得分:1)
您可能希望使用子查询...实际上有两个这样的查询
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)
答案 1 :(得分:0)
使用两个查询。如果用户名和密码匹配,请获取用户ID。然后使用该id在登录后获取额外数据。
答案 2 :(得分:0)
我假设您正在与关系数据库进行通信。如果你的意思是在“数据”表的“用户名”加入之后,“数据”表中的多个条目可能被相同的用户名键入,那么这种答案本身,使用相同的密钥,但放入不同的数据,DBMS应该处理剩下的事情。
如果您担心数据表中元组的唯一性,那么
CONSTRAINT tableName_a_b_pk PRIMARY KEY(a,b)其中be是表“Data”的判别式。
答案 3 :(得分:0)
select table2.* from table2, user where table2.username=user.username AND user.username='username' AND user.password='password'