0

我有一个名为 的表Users,其中有两个字段usernamepassword。同样,我还有一张表,其中的字段和username字段很少。

我有一个登录页面,我必须检查表中是否存在username和,如果存在,我想从与该 对应的另一个表中获取数据。passwordUsersusername

单个用户可以有多个数据,因此我必须为各个用户获取所有数据。我该怎么做?

4

4 回答 4

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)
于 2012-08-09T05:19:41.237 回答
0

使用两个查询。如果用户名和密码匹配,则获取用户 ID。然后在他们登录后使用该 id 来获取额外的数据。

于 2012-08-09T05:11:47.410 回答
0

我假设您正在与关系数据库交谈。如果您的意思是在将“用户名”连接到“数据”表之后,“数据”表中的多个条目可能由相同的用户名作为键,那么这种答案本身,使用相同的键,但放置不同的数据,DBMS 应该处理其余的。

如果您担心数据表中元组的唯一性,那么

CONSTRAINT tableName_a_b_pk PRIMARY KEY (a,b) 其中 be 是表“数据”的判别式。

于 2012-08-09T05:17:59.013 回答
0
select table2.* from table2, user where table2.username=user.username AND user.username='username' AND user.password='password'
于 2012-08-09T05:18:24.993 回答