我正在寻找获取生产过程数据的方法。 我有两张桌子:
生产:存储产品信息
时间表:有员工的详细信息以及何时进行生产步骤
生产:
--------------------------
internal | type of closing
--------------------------
123 | close
122 | open
timeline:
------------------------------------------------
id | internal | employee | date | step
------------------------------------------------
1 | 123 | E01 | 2017-11-11 | diag
2 | 123 | E03 | 2017-11-12 | rep
3 | 122 | E06 | 2017-11-05 | diag
列步骤的步骤是预定的(诊断,代表,测试)
我想得到一个结果:
----------------------------------------------------------------------------------------
internal | diag | date_diag | rep | date_rep | test | date_test | type of closing
----------------------------------------------------------------------------------------
123 | E01 | 2017-11-11 | E03 | 2017-11-12 | NULL | NULL | close
122 | E06 | 2017-11-05 | NULL | NULL | NULL | NULL | open
稍后通过date_rep(或)date_test(或)date_diag和结束类型(关闭/打开)过滤此结果。 如何使用Mysql和PHP完成这项工作?具有最佳性能,因为基础庞大。
答案 0 :(得分:0)
您应该在同一个表上使用不同的别名,以这样的方式加入表:
SELECT T1.internal,
T1.employee,
T1.date as date_diag,
T2.employee as rep,
T2.date as date_rep,
NULL,
NULL,
P.description
FROM timeline T1
INNER JOIN production P ON T1.internal = P.internal
LEFT JOIN timeline T2 ON T1.internal = T1.internal and T2.step = 'rep'
WHERE T1.step ='diag'
这是一个足够接近解决方案的起点。