2016-11-14 49 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 –

相關問題