【发布时间】:2019-09-13 09:26:42
【问题描述】:
我有两张表,一张用于问题,一张用于选项。 所有问题都将保存在问题表中。
问题表:
id | questions | created_on
1 | Who is the world champianship on 2016 World cup?| 13-09-2016
2 | Who won the FiFA world cup? | 13-09-2019
选项表:
id | question_id | option_text
1 | 1 | Pakistan
2 | 1 | India
3 | 1 | Australia
4 | 1 | Srilanka
5 | 2 | Canada
6 | 2 | Russia
7 | 2 | Germany
8 | 2 | France
这是桌子:
我希望 json 响应格式如下:
[
{
"question": "Who is the world champianship on 2016 World cup",
"created_on": "2019-09-13",
"question_id": 1,
"options":[
{"option_text": "Pakistan"},
{"option_text": "India"},
{"option_text": "Australia"},
{"option_text": "Srilanka"}
]
},
{
"question": "Who won the FiFA world cup?",
"created_on": "2019-09-13",
"question_id": 2,
"options":[
{"option_text": "Canada"},
{"option_text": "Russia"},
{"option_text": "Germany"},
{"option_text": "France"}
]
}
]
但是在我下面的 SQL 查询中
$records = DB::table('tbl_questions')
->where('created_on', '=', date('Y-m-d'))
->leftJoin('tbl_options', 'tbl_options.question_id', '=', 'tbl_questions.id')->get();
返回以下响应:
[
{
"question": "Who is the world champianship on 2016 World cup",
"created_on": "2019-09-13",
"question_id": 1,
"option_text": "Pakistan"
},
{
"question": "Who is the world champianship on 2016 World cup",
"created_on": "2019-09-13",
"question_id": 1,
"option_text": "India"
},
{
"question": "Who is the world champianship on 2016 World cup",
"created_on": "2019-09-13",
"question_id": 1,
"option_text": "Australia"
},
{
"question": "Who is the world champianship on 2016 World cup",
"created_on": "2019-09-13",
"question_id": 1,
"option_text": "Srilanka"
},
{
"question": "Who won the FiFA world cup?",
"created_on": "2019-09-13",
"question_id": 2,
"option_text": "Canada",
},
{
"question": "Who won the FiFA world cup?",
"created_on": "2019-09-13",
"question_id": 2,
"option_text": "Russia",
},
{
"question": "Who won the FiFA world cup?",
"created_on": "2019-09-13",
"question_id": 2,
"option_text": "Germany",
},
{
"question": "Who won the FiFA world cup?",
"created_on": "2019-09-13",
"question_id": 2,
"option_text": "France"
}
]
任何人都可以帮助我获得预期的 json 响应。我们将不胜感激。
【问题讨论】:
-
您必须使用
One to Many关系。这意味着一个问题可以有多个选项,并且要实现您的系统应该有 3 个表,例如questions、options、question_options。最后一张表将用作问题和选项表的数据中心。