2013-01-12 156 views
1

我运行此查询#1248 - 每一个派生表必须有它自己的别名

SELECT * 
FROM (`T_INV_DTL`) 
LEFT JOIN 
(
    SELECT GROUP_CONCAT(DISTINCT T_INV_INVESTIGATOR.Employee_id) AS Employee_id 
    FROM T_INV_INVESTIGATOR 
    GROUP BY `T_INV_INVESTIGATOR`.`inv_dtl_id` 
) ON `T_INV_DTL`.`inv_dtl_id` = `T_INV_INVESTIGATOR`.`inv_dtl_id` 
JOIN `T_INVESTIGATION` ON `T_INV_DTL`.`inv_id` = `T_INVESTIGATION`.`inv_id` 

和它给这个错误:

#1248 - 每一个派生表必须有它自己的别名

出了什么问题?

回答

2

你必须给一个别名的子查询,

检查:

SELECT * 
FROM T_INV_DTL T 
LEFT JOIN (SELECT inv_dtl_id , GROUP_CONCAT(DISTINCT Employee_id) AS Employee_id 
      FROM T_INV_INVESTIGATOR 
      GROUP BY inv_dtl_id) A ON T.inv_dtl_id = A.inv_dtl_id 
JOIN T_INVESTIGATION TI ON T.inv_id = TI.inv_id 
+0

现在我得到错误这个“#1054 - 未知的列'A.inv_dtl_id'在'子句'” – user1971825

+0

@ user1971825现在试试我已经更新了我的答案。您也可以在选择查询中选择该字段。 –

+0

你好..它的好..你可以改变这个查询codeigniter sql查询? – user1971825

0

当过你写一个子查询你必须给一个别名whlole

如果您有多个查询,那么最好在选择列表中使用别名给予不同的名称以避免冲突

相关问题