2016-04-26 23 views
0

JOINを私は次のクエリがあります。私は2回表glpi_usersを使用する必要が「不明な列」エラーが

ERROR 1054 (42S22) at line 1: Unknown column 'glpi_tickets_users.type' in 'field list'

:それは次のようなエラーが出力さ

SELECT 
    z.id,users.name,e.name,tt.date, 
    CASE WHEN z.priority = 6 THEN 'Mayor' WHEN z.priority = 5 THEN 'Muy urgente' 
    WHEN z.priority = 4 THEN 'Urgente'WHEN z.priority = 3 THEN 'Mediana' 
    WHEN z.priority = 2 THEN 'Baja' WHEN z.priority =1 THEN 'Muy baja' END, 
    ROUND(SUM(tt.actiontime/3600),2) AS HORAS, c.name, i.name, 
    glpi_tickets_users.type 
FROM glpi_tickettasks tt 
INNER JOIN glpi_tickets z ON tt.tickets_id = z.id 
LEFT JOIN glpi_itilcategories i ON z.itilcategories_id = i.id 
INNER JOIN glpi_users AS users ON users.id = tt.users_id 
INNER JOIN glpi_users AS req ON req.id = glpi_tickets_users.users_id 
LEFT JOIN glpi_usercategories c ON c.id = users.usercategories_id 
INNER JOIN glpi_entities e ON z.entities_id = e.id 
WHERE tt.date>'2016-01-06' and tt.date<'2016-01-06' 
GROUP BY tt.users_id,tt.id 
ORDER BY users.name limit 5 

を「ユーザータイプ」を取得します。

私のクエリで何が問題になっていますか?

答えて

2

これまでのクエリでは、テーブルglpi_tickets_usersに参加していません。

SELECT z.id,users.name,e.name,tt.date,CASE WHEN z.priority = 6 THEN 'Mayor' WHEN z.priority = 5 THEN 'Muy urgente' WHEN z.priority = 4 THEN 'Urgente'WHEN z.priority = 3 THEN 'Mediana' WHEN z.priority = 2 THEN 'Baja' WHEN z.priority =1 THEN 'Muy baja' END,ROUND(SUM(tt.actiontime/3600),2) AS HORAS,c.name,i.name,glpi_tickets_users.type 
FROM glpi_tickettasks tt 
INNER JOIN glpi_tickets z ON tt.tickets_id = z.id 
LEFT JOIN glpi_itilcategories i ON z.itilcategories_id = i.id 
INNER JOIN glpi_users AS users ON users.id = tt.users_id 
/**here is the join to glpi_tickets_users **/ 
INNER JOIN glpi_tickets_users ON users.id = glpi_tickets_users.users_id 
INNER JOIN glpi_users AS req ON req.id = glpi_tickets_users.users_id 
LEFT JOIN glpi_usercategories c ON c.id = u.usercategories_id 
INNER JOIN glpi_entities e ON z.entities_id = e.id 
WHERE tt.date>'2016-01-06' and tt.date<'2016-01-06' GROUP BY tt.users_id,tt.id ORDER BY users.name limit 5 
3

クエリのどこにテーブルglpi_tickets_usersが表示されていないからです。 from節でも、join節でもありません。その列をglpi_tickets_users.typeにしたくない場合は、単純にクエリから削除しても問題ありません。

1

テーブルのデータ構造はわかりませんが、glpi_usersテーブルのtypeカラムではありませんか?

そのような場合、最終クエリはこのことだろうglpi_users.type

glpi_tickets_users.typeを置き換える:あなたはまったくクエリでテーブルにglpi_tickets_usersに参加していないので、あなたがすることはできません

SELECT z.id,users.name,e.name,tt.date,CASE WHEN z.priority = 6 THEN 'Mayor' WHEN z.priority = 5 THEN 'Muy urgente' WHEN z.priority = 4 THEN 'Urgente'WHEN z.priority = 3 THEN 'Mediana' WHEN z.priority = 2 THEN 'Baja' WHEN z.priority =1 THEN 'Muy baja' END,ROUND(SUM(tt.actiontime/3600),2) AS HORAS,c.name,i.name,glpi_users.type 

FROM glpi_tickettasks tt 

INNER JOIN glpi_tickets z ON tt.tickets_id = z.id 

LEFT JOIN glpi_itilcategories i ON z.itilcategories_id = i.id 

INNER JOIN glpi_users AS users ON users.id = tt.users_id 

INNER JOIN glpi_users AS req ON req.id = glpi_tickets_users.users_id 

LEFT JOIN glpi_usercategories c ON c.id = u.usercategories_id 

INNER JOIN glpi_entities e ON z.entities_id = e.id 

WHERE tt.date>'2016-01-06' and tt.date<'2016-01-06' GROUP BY tt.users_id,tt.id ORDER BY users.name limit 5 
1

それから選択してください。クエリを変更して、glpi_tickets_usersを含める必要があります。

関連する問題