我想把4个数据库表连接在一起。 每个表都有共同的studenId字段,所有其他字段都不同。 我想要这样的东西
StudentIdBeginTimeEndTimeAudioTextSentimentBPMLongLatMov
这些字段应根据其他表中的值填写。
这是我试过的代码
USE signals_db;
INSERT INTO trainingTable
SELECT audio.beginTime, audio.endTime, audio.audioText, audio.sentiment,
heartrate.bpm, locations.long, locations.lat,
movements.gravityX, movements.gravityY, movements.gravityZ,
movements.accX, movements.accY, movements.accZ, movements.rotX,
movements.rotY, movements.rotZ,
movements.attRoll, movements.attPitch, movements.attYaw, movements.fallenDown
FROM audio
INNER JOIN heartrate
ON audio.studentId = heartrate.studentId
INNER JOIN locations
ON audio.studentId = locations.studentId
INNER JOIN movements
ON audio.studentId = movements.studentId
使用上面的代码,将在联接的表中创建许多重复的值。 我已经试过几个答案了,但大多数都不起作用。
我希望你能帮帮我。
下面是连接表的图片:
如果确实获得重复行
对于每个重复的行,可以使用DISTINCT来获取单行
SELECT DISTINCT audio.beginTime, audio.endTime, audio.audioText, audio.sentiment,
heartrate.bpm, locations.long, locations.lat,
movements.gravityX, movements.gravityY, movements.gravityZ,
movements.accX, movements.accY, movements.accZ, movements.rotX,
movements.rotY, movements.rotZ,
movements.attRoll, movements.attPitch, movements.attYaw, movements.fallenDown
FROM audio
INNER JOIN heartrate
ON audio.studentId = heartrate.studentId
INNER JOIN locations
ON audio.studentId = locations.studentId
INNER JOIN movements
ON audio.studentId = movements.studentId