Mysql 将4个表连接在一起(获得许多重复值)

Mysql 将4个表连接在一起(获得许多重复值),mysql,database,Mysql,Database,我想将4个数据库表连接在一起。每个表都有一个共同的studenId字段,而所有其他字段都不同。 我想要这样的东西 学生ID |开始时间|结束时间|有声文本|情感| bpm |长时间|横向|移动坐标| 这些字段应根据其他表中的值填写 这是我尝试过的代码 USE signals_db; INSERT INTO trainingTable SELECT audio.beginTime, audio.endTime, audio.audioText, audio.sentiment, heartrate

我想将4个数据库表连接在一起。每个表都有一个共同的studenId字段,而所有其他字段都不同。 我想要这样的东西

学生ID |开始时间|结束时间|有声文本|情感| bpm |长时间|横向|移动坐标|

这些字段应根据其他表中的值填写

这是我尝试过的代码

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 for获取每个重复数据的单行

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

因此,使用distinct可以避免我在图片中提到的行中出现重复值的问题?如果行的内容是完全重复的distinct,则删除重复的行,并为每个重复的行只返回一行。非常感谢你。这就是我需要的。我明天会直接测试它。我会建议检查那些复制品是从哪里来的。如果不应该有任何重复,这是一个迹象,你有一个错误在其他地方
DISTINCT
看起来很有效,但可能有错误。检查联接的表之间是否存在其他关系。由于数据来自可穿戴设备,因此studentId在每个表中出现多次。每次用户关闭设备时,都会创建一个新的studentId。但我想这不应该是个问题。我明天直接去试试为什么会有重复的?有一堆重复的。我实际上不知道为什么会出现这个问题。如果你不知道,那么这应该是你的问题。在你开始纠正你不理解的症状之前。