使用数组创建 SQL 表

我有个问题!我真的不知道怎么解释,所以我来说明一下!


我知道如何在 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,我不知道该怎么做!


慕盖茨4494581
浏览 168回答 1
1回答

aluckdog

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子句来选择特定信息。
打开App,查看更多内容
随时随地看视频慕课网APP