如何在下面提到的条件下获取数据?

时间:2012-08-09 05:09:49

标签: mysql

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

我有一个登录页面,我必须检查username表中是否存在passwordUsers,如果存在,我想从另一个表中获取数据对应于username

单个用户可以有多个数据,因此我必须获取相应用户的所有数据。我该怎么办?

4 个答案:

答案 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'