【问题标题】:displaying all table data mysql [closed]显示所有表数据mysql [关闭]
【发布时间】:2013-04-01 18:35:18
【问题描述】:

我有 6 个表,其中都包含学生信息。 表名:学生详细信息、医生详细信息、录取详细信息、previous_school、父亲详细信息、母亲详细信息。 这些表中的每一个都包含一个唯一的 ID。

为了将所有这些表合二为一,我有一个 student_info 表,其中包含上述 6 个表中的所有 id。这些链接到相应表中的唯一 ID。

我需要显示所有学生信息,我知道我会使用左连接和右连接,我只是不确定 mysql 如何读取 student_info 表中的 id 并从相应表中获取所有信息,以便用户查看所有信息一种形式的学生信息。

提前谢谢你。

【问题讨论】:

    标签: mysql relationships


    【解决方案1】:

    编辑: http://sqlfiddle.com/#!2/c5489/2(工作示例)

    您不需要将所有 ids 放入每个表中,而是每个表都有自己的主键 ID - 保证是唯一的,并且您很可能使用 inner join 连接每个表

    Table A(user_id int, user_name varchar(255))
    Table B(student_id int, student_email varchar(255))
    

    然后选择你想要的数据,使用相关的ID加入:

    Select user_name from TableA
    INNER JOIN TableB ON
    TableA.user_id = TableB.student_id
    

    【讨论】:

    • 每个表都有自己的唯一ID。但如果我没有额外的表格将它们连接在一起,那么我还能如何创建关系?
    • @abdullaRehmani 通过一些代码示例查看我的编辑
    • 这意味着所有6个表都会有学生ID有一个字段?哪个与 student_Details 表相同?那么我就不需要 student_info 表了。
    • @abdullaRehmani sqlfiddle.com/#!2/c5489/2
    • 谢谢你,那么这些关系是如何运作的呢?它们将如何相互连接?还是不会?
    【解决方案2】:

    您必须指定连接才能使这项工作:

    select * from student, student_info where student_info.student_id = student.id
    

    这告诉服务器返回两个表中的所有信息,其中学生 ID 与学生信息中存储的学生 ID 匹配。

    在这里,我假设学生是具有 student_info 的 1:many(其中至少有一个,但每个学生信息可以是多个学生信息行)。

    【讨论】:

    • hmmm 那么我必须将 student_info id 放在 6 个表中吗?
    • 是的,你必须有一些东西可以用来将表格连接在一起,上面写着“我与这里的记录有关”。没有魔法。
    • 我也是这么想的……我要试一试。没有魔法太糟糕了。
    猜你喜欢
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多