我有一个main_table,它有一个depts列表,如。
科指南
HR
销售
工程证书
管理员
帐户。
每个部门都有一个同名的单独表格。
每张桌子都有字段 -
EMP_ID
任务
date_assigned
状态。
我需要创建一个查询,该查询将从每个部门中提取一条记录并使用最新分配的日期并将其填入视图中。像这样的事情
HR 910 16-01-14跟进候选人
答案 0 :(得分:0)
表格(表格) { SELECT * FROM表ORDER BY date_assigned ASC LIMIT 1; }
SQL是唯一真正的代码,另一个是pseduo代码。
答案 1 :(得分:0)
您需要为此
使用动态SQLSET @sql = NULL;
SELECT GROUP_CONCAT(CONCAT('(SELECT ''', depts, ''' dept, t.* FROM `', depts,
'` t ORDER BY date_assigned DESC LIMIT 1)') SEPARATOR ' UNION ALL ')
INTO @sql
FROM main_table;
SET @sql = CONCAT(@sql, ' ORDER BY dept');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
示例输出:
| DEPT | EMP_ID | TASK | DATE_ASSIGNED | |-------|--------|-------------------------|--------------------------------| | HR | 910 | Follow Up on Candidates | January, 16 2014 00:00:00+0000 | | Sales | 912 | Follow up on leads | January, 14 2014 00:00:00+0000 |
这是 SQLFiddle 演示