我有桌子:
TRUCKING_JOB:trucking_id
,driver
Data:
1, Jonah
2, Jim
3, Ron
机器:machine_id
,machine_name
Data:
1, Machine1
2, Machine2
3, Machine3
TRUCKING_MACHINE:trucking_id
,machine_id
Data:
1, 1
1, 2
1, 3
2, 1
2, 2
3, 1
3, 3
我的问题是,如何使用单个查询字符串获取此查询结果
trucking_id,驱动程序,机器名称
例如:
1, Jonah, (Machine1, Machine2, Machine3)
第三列结合了所有计算机。
感谢您的帮助和建议。
答案 0 :(得分:1)
您正在寻找的是“ GROUP BY”,它具有一些特殊功能,例如“ GROUP_CONCAT”。
SELECT
TRUCKING_JOB.trucking_id,
TRUCKING_JOB.driver,
GROUP_CONCAT(MACHINES.machine_name SEPARATOR ','
FROM TRUCKING_MACHINE
JOIN TRUCKING_JOB ON TRUCKING_MACHINE.trucking_id = TRUCKING_JOB.trucking_id
JOIN MACHINES ON TRUCKING_MACHINE.machine_id = MACHINES.machine_id
GROUP BY TRUCKING_JOB.trucking_id
您可以在GROUP BY之前添加任何WHERE子句语句。
答案 1 :(得分:0)
谢谢。这是我基于@Eugene推荐查询的最终查询字符串。
SELECT
TRUCKING_JOB.trucking_id AS TRUCKING_ID,
TRUCKING_JOB.driver AS DRIVER,
GROUP_CONCAT(MACHINES.machine_name SEPARATOR ', ') AS MACHINES
FROM TRUCKING_MACHINE
JOIN TRUCKING_JOB ON TRUCKING_MACHINE.trucking_id = TRUCKING_JOB.trucking_id
JOIN MACHINES ON TRUCKING_MACHINE.machine_id = MACHINES.machine_id
GROUP BY TRUCKING_JOB.trucking_id