2016-11-14 24 views
0

在此先感谢,我有两个表一个是用户表,另一个是检查表。用户表包含所有用户列表,并且检查表包含用户检查的所有数据,因此它包含具有不同管理员的行。因此,如果检查表包含至少一个adminid,如何编写sql查询以获取用户名。SQL查询获取只有一个名称,如果id在两个表中存在不同的记录

我的用户表:

id |username |Phone  |email   |role 
1 | Girish |9834343468|[email protected] |admin 
2 | Rakesh |9434343432|[email protected] |admin 
3 | Suresh |9434343772|[email protected] |developer 

检查表:

id | userid | username | admin_id |order_id |exam | 
1 | 3  | suresh | 1  | df54545454fg09| 
2 | 3  | suresh | 1  | df54545454fg09| 
3 | 3  | suresh | 2  | gh54995454fg55| 

我需要一个SQL查询,其中检查表ATLEAST一个 “admin_id” 包含用户表 “ID”

我想创建一个这样的表格

id|admin_id|name |email   |Phone 
1 | 1 |Girish |[email protected] |9834343468 
2 | 2 |Rakesh |[email protected] |9434343432 
+0

你的方法是什么? – take

+0

这是一个非常简单的场景。这可以通过不同的方式实现。尝试关于JOIN,子查询。 – Viki888

+0

没有实际加入,左加入,右加入将结合两个表数据并显示结果。取而代之的是,我需要一个明显的用户ID作为“admin_id” –

回答

0

请尝试以下查询

SELECT u.id,a.admin_id,u.username name, u.email, u.Phone 
FROM users u, 
(SELECT DISTINCT admin_id 
FROM checks c) a 
WHERE u.id=a.admin_id 

这可能对你有帮助。

+0

非常感谢你viki888它工作正常 –

0

试试这个:

select u.id,a.admin_id,u.username name, u.email, u.Phone 
from users u 
(select c.admin_id 
from checks c 
group by c.admin_id) a 
where u.id=a.admin_id 
+0

没有它不工作 –

+0

admin_id没有出现在用户表,所以我改变了这样的选择ID,用户名,电子邮件,电话 从用户的SQL查询ü (选择admin_id 从检查 组由admin_id)一 其中u .id = a.admin_id –

+0

@RagithThomas没有Admin_id来自子查询“a” –

0
SELECT * FROM User_table WHERE EXISTS (SELECT 1 FROM admin_table WHERE id = admin_id) 

试试这个 SELECT ID,admin_id,A.username姓名,电子邮件,电话 FROM USER_TABLE JOIN ( SELECT DISTINCT Admin_Id,用户名 FROM admin_table )A ON A.Admin_Id = id

+0

没有Mansoor它是在您的MySQL服务器版本对应的手册不工作,我只需要不同的admin_id检查表,这是目前在用户表中ID –

相关问题