[英]mysql result not displaying based on my query
我有一個名為add_project
的表:
+------------+---------+-------------------+--------------+ | project_id | user_id | project_status_id | project_name | +------------+---------+-------------------+--------------+ | 1 | 1 | 3 | abc | | 2 | 1 | 0 | def | | 3 | 1 | 1 | xyz | | 4 | 1 | 3 | lmn | | 5 | 1 | 0 | trs | | 6 | 1 | 3 | ght | +------------+---------+-------------------+--------------+
在此表中,admin添加新項目。 admin user_id
為1,因此它很常見。 project_status_id
表示該項目的完成狀態(0 = new,1 = working,3 = completed)。
我有另一個名為asign_project
表:
+----------+------------+---------+ | asign_id | project_id | user_id | +----------+------------+---------+ | 1 | 1 | 5 | | 2 | 5 | 9 | | 3 | 2 | 5 | | 4 | 4 | 5 | | 5 | 6 | 9 | | 6 | 3 | 9 | +----------+------------+---------+
在此表中,管理員將項目分配給不同的用戶。
現在我想要的是找出每個用戶已完成的項目數量。 如您所見, project_id(1,4)
已由user_id=5
完成。
所以我的問題是如何獲得這個價值?
以下是我寫的查詢:
SELECT *
FROM asign_project, add_project
WHERE asign_project.project_id = add_project.project_id
AND project_status_id='3'
AND user_id='5'
但它顯示:
#1052 - Column 'user_id' in where clause is ambiguous
在sqlfiddle上看到它。
等待你的答復。
我猜這兩個表都有user_id
列,因此您需要在表名中更多地指定。
Select
*
FROM
asign_project, add_project
WHERE
asign_project.project_id = add_project.project_id
AND
project_status_id='3'
AND
asign_project.user_id='5';
user_id屬於哪個表? 你應該添加TABLE_XXX.user_id.
Select * FROM asign_project, add_project
WHERE
asign_project.project_id = add_project.project_id
AND
project_status_id='3'
AND
asign_project.user_id='5';
此錯誤基本上意味着您選擇的兩個表具有相同的列名稱。
在WHERE
子句中,您只需指定要用於過濾數據的表名。
例:
Select *
FROM
asign_project, add_project
WHERE
asign_project.project_id = add_project.project_id
AND
asign_project.project_status_id='3'
AND
asign_project.user_id='5'
所有已完成的工作是將WHERE子句中的user_id
替換為assign_project.user_id
(假設assign_project是您要使用的正確表)
用過這個
將user_id替換為add_project.user_id
Select
*
FROM
asign_project, add_project
WHERE
asign_project.project_id = add_project.project_id
AND
project_status_id='3'
AND
add_project.user_id='5'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.