为了账号安全,请及时绑定邮箱和手机立即绑定

使用数组创建 SQL 表

使用数组创建 SQL 表

PHP
慕盖茨4494581 2021-11-13 10:24:14
我有个问题!我真的不知道怎么解释,所以我来说明一下!我知道如何在 SQL 上制作具有这种形状的表格:var data = {  "news" :[    {      "title" : "I am the title 1",      "number of views" : 28,      "text" : "Here is the text",      "date of publication" : "13 March"    },    {      "title" : "I am the title 2",      "number of views" : 57,      "text" : "Here is the text",      "date of publication" : "24 May"      ]    },    {      "title" : "I am the title 3",      "number of views" : 74,      "text" : "Here is the text",      "date of publication" : "27 May"    }  ]};现在我希望能够创建一个具有这种形状的表格:var data = {  "staff member" :[     {      "First name" : "John",      "Last name" : "Doe",      "schedules" : [          "Friday : 14h - 22h",          "Saturday : 10h - 19h",          "Sunday : 10h - 19h"      ]    },    {      "First name" : "Amelia",      "Last name" : "Doe",      "schedules" : [          "Friday : 18h - 23h",          "Saturday : 9h - 17h",          "Sunday : 8h - 20h"      ]    }  ]};看到不同?对不起,如果它有点混乱,但我真的不知道该怎么称呼它!我认为这可以通过创建另一个表并找到自己的名字、姓氏和时间表的通用 ID 来完成。但一定有更简单的方法,对吧?所以我的问题很简单,这可能吗?如果是这样,如何?我是用 JSON 做的,但现在我想切换到 MySQL,我不知道该怎么做!
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

SQL 不支持您在代码中显示的“子表”概念。相反,您应该创建两个单独的表,类似于:


    CREATE TABLE staff_member (

        staff_member_id int,

        First_name varchar,

        Last_name varchar

    )


    CREATE TABLE schedules (

       staff_member_id int,

       day_of_week varchar,

       start_hour int,

       end_hour int

    )

然后您可以使用以下方法选择数据:


   SELECT m.First_name, m.Last_name, s.day_of_week, s.start_hour, s.end_hour

      FROM staff_member m 

      LEFT JOIN schedules s ON m.staff_member_id = s.staff_member_id

      ORDER BY m.Last_name, m.First_name, s.day_of_week, s.start_hour, s.end_hour

当然,您可以添加WHERE子句来选择特定信息。


查看完整回答
反对 回复 2021-11-13
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信