繁体   English   中英

从两个不同的表中获取和联接两个数据,用于If条件PHP

[英]GET AND JOIN two data from two different table for If conditions PHP

我有两张桌子

表A(从某个表获得一个视图):
从表A查询:

选择view_person_schedule。 ,view_history_absen。 ,TIMEDIFF(time_in,schedule_time_in)较晚,TIMEDIFF(schedule_time_out,time_out)作为加班时间FROM person JOIN view_history_absen ON view_history_absen.ID = view_person_schedule.ID

表A:

ID | 日期| time_in | time_out |
1 | 2014-06-01 | 07:00 | ........ |
1 | 2014-06-02 | 08:00 | ........ |
1 | 2014-06-03 | 08:10 | ........ |
1 | 2014-06-04 | ..... | ........ |
1 | 2014-06-05 | ..... | ........ |
1 | 2014-06-10 | ..... | ........ |
1 | 2014-06-14 | ..... | ........ |

表B:

ID | date_exc | 信息|
1 | 2014-06-06 | NULL |
1 | 2014-06-07 | NULL |
1 | 2014-06-08 | NULL |
1 | 2014-06-09 | NULL |
1 | 2014-06-11 |
1 | 2014-06-12 |
1 | 2014-06-13 |

我的问题是:如何使结果数据如下所示:

ID | 日期| time_in | time_out |
1 | 2014-06-01 | 07:00 | ........ |
1 | 2014-06-02 | 08:00 | ........ |
1 | 2014-06-03 | 08:10 | ........ |
1 | 2014-06-04 | ..... | ........ |
1 | 2014-06-05 | ..... | ........ |
1 | 2014-06-06 | NULL | ........ |
1 | 2014-06-07 | NULL | ........ |
1 | 2014-06-08 | NULL | ........ |
1 | 2014-06-09 | NULL | ........ |
1 | 2014-06-10 | ..... | ........ |
1 | 2014-06-11 | ........ |
1 | 2014-06-12 | ........ |
1 | 2014-06-13 | ........ |
1 | 2014-06-14 | ..... | ........ |

请任何人帮助我。

假设两个表中没有重叠的日期,或者如果要在结果中同时包含两行,请使用UNION

SELECT id, dates, time_in, time_out
FROM TableA
UNION
SELECT id, dates_exc, information, NULL
FROM TableB

如果表B在重叠时应该优先:

SELECT dates.id, dates.dates, IFNULL(b.information, a.time_in) AS time_in, a.time_out
FROM (SELECT id, dates
      FROM tableA
      UNION DISTINCT
      SELECT id, dates
      FROM tableB) AS dates
LEFT JOIN tableB AS b ON dates.id = b.id AND dates.dates = b.dates
LEFT JOIN tableA AS a ON dates.id = a.id AND dates.dates = a.dates

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM