- 此问题在此处已有答案**:
How to join two tables with unequal number of rows for same primary key value(2个答案)
昨天关门了。
我有带名字的table
- 考勤_时间表 *
| 识别号|日期|
| - ------| - ------|
| 1个|二〇二二年十二月二十日|
| 第二章|二〇二二年十二月二十一日|
| 三个|二〇二二年十二月二十二日|
- 用户 *
| 识别号|姓名|
| - ------| - ------|
| 1个|无名氏|
| 第二章|无名氏|
| 三个|乔纳森·多伊|
| 四个|詹妮弗·多伊|
然后在表中建立两者之间的关系,目的是列出计划考勤和实际考勤。
- 出勤_计划 *
| 考勤计划标识|用户标识|
| - ------| - ------|
| 1个|1个|
| 1个|第二章|
| 1个|三个|
| 第二章|1个|
| 第二章|三个|
| 第二章|四个|
| 三个|1个|
| 三个|第二章|
- 出勤_实际 *
| 考勤计划标识|用户标识|
| - ------| - ------|
| 1个|1个|
| 1个|第二章|
| 1个|三个|
| 1个|四个|
| 第二章|1个|
| 第二章|第二章|
| 第二章|三个|
| 三个|第二章|
现在,我想在MySQL上使用 * JOIN * 显示 * attendence_schedules 、 attendence_planned 、 attendence_actual * 和 * users * 之间的组合数据。但我被卡住了,找不到引用来实现我想要的功能。
- 这是我第一次问,如果有什么需要修复的标题或问题,我会很乐意修复它:)
我使用以下SQL查询:
SELECT attendance_schedules.date, planning_users.name, actual_users.name
FROM attendance_schedules
LEFT JOIN attendance_planned ON attendance_planned.attendance_schedule_id = attendance_schedules.id
LEFT JOIN users as planning_users ON planning_users.id = attendance_planned.user_id
LEFT JOIN attendance_actual ON attendance_actual.attendance_schedule_id = attendance_schedules.id
LEFT JOIN users as actual_users ON actual_users.id = attendance_actual.user_id
我想要的结果:
| 日期|计划名称|实际名称|
| - ------| - ------| - ------|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|乔纳森·多伊|乔纳森·多伊|
| 二〇二二年十二月二十日|零|詹妮弗·多伊|
| 二〇二二年十二月二十一日|无名氏|无名氏|
| 二〇二二年十二月二十一日|乔纳森·多伊|无名氏|
| 二〇二二年十二月二十一日|詹妮弗·多伊|乔纳森·多伊|
| 二〇二二年十二月二十二日|无名氏|无名氏|
| 二〇二二年十二月二十二日|无名氏|零|
现在发生的结果:
| 日期|计划名称|实际名称|
| - ------| - ------| - ------|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|无名氏|乔纳森·多伊|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|无名氏|无名氏|
| 二〇二二年十二月二十日|无名氏|乔纳森·多伊|
| 二〇二二年十二月二十日|乔纳森·多伊|无名氏|
| 二〇二二年十二月二十日|乔纳森·多伊|无名氏|
| 二〇二二年十二月二十日|乔纳森·多伊|乔纳森·多伊|
| - -| - -| - -|
1条答案
按热度按时间jhdbpxl91#
How to join two tables with unequal number of rows for same primary key value
这可能就是您遇到的问题。