这里我有两个表,我想从这两个表得到的结果。我尝试了很多,但我无法得到确切的结果,你可以请任何帮助我,我正在使用这个应用程序在codeiniter。
第一个表格
新员工
staff_id firstName Mobile userType
1 Soupranjali 9986125566 Teacher
2 Sujata 8553880306 Teacher
第二张table
新学生
student_id first_Name fatherMobile user_type
1 janarthan 8553880306 Student
2 Santanu 8277904354 Student
3 Sarvan 8553880306 Student
此处为8553880306两个表都存在此移动的号码,因此需要获取两个表的结果
预期结果
{
"status": "Success",
"Profile": [
{
"staff_id": "2",
"firstName": "Sujata",
"userType" : "Teacher"
},
{
"student_id": "1",
"firstName": "janarthan",
"user_type" : "Student"
},
{
"student_id": "3",
"firstName": "Sarvan",
"user_type" : "Student"
}
]
}
所以我试着这样做,但我无法得到答案,所以请任何人帮助我,
我的模型
public function android_memberList($mobile)
{
$this->db->select('new_staff.staff_id, new_staff.firstName, new_staff.userType, new_student.student_id, new_student.first_Name, new_student.user_type');
$this->db->from('new_staff');
$this->db->join('new_student', 'new_student.fatherMobile = new_staff.Mobile');
$query = $this->db->get();
# result_array is used to convert the data into an array
$result = $query->result_array();
echo json_encode($result);
}
根据我的查询,它返回的输出如下所示,但这不是我所期望的json格式
[
{
"staff_id": "2",
"firstName": "Sujata",
"userType": "Teacher",
"student_id": "1",
"first_Name": "janarthan",
"user_type": "Student"
},
{
"staff_id": "2",
"firstName": "Sujata",
"userType": "Teacher",
"student_id": "2",
"first_Name": "Santanu",
"user_type": "Student"
}
]
更新的答案
{
"status": "Success",
"Profile": [
{
"staff_id": "2",
"firstName": "Sujata",
"userType": "Teacher"
},
{
"staff_id": "2",
"firstName": "Sujata",
"userType": "Teacher"
},
{
"student_id": "1",
"first_Name": "janarthan",
"user_type": "Student"
},
{
"student_id": "2",
"first_Name": "Santanu",
"user_type": "Student"
}
]
}
4条答案
按热度按时间e7arh2l61#
请替换代码中的这一行并检查,我认为它工作正常,并且您可以获得所需的数据。
myss37ts2#
您正在使用MySQL
join
合并两个表中的数据,这永远不会得到您想要的结果。您可以使用union
合并两个表中的数据。在您的情况下,问题是两个表中的字段名称不同。解决方案1:
在SQL中,使用
alias
泛化列名,问题是在您的json
数组中,您将获得泛化键。解决方案2:
运行两个不同的查询,在两个不同的数组中获取数据,合并两个数组,得到想要的结果。
vdgimpew3#
您可以使用连接来获取具有一个键的两个表数据左连接是最佳选择
你可以这样试试
9cbw7uwe4#
您可以在codeigniter项目中尝试此查询,它将为您提供所有具有新名称的列。
或者,您可以根据兼容性修改列名。
您可以在这里看到您的查询已解决https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=0288bef1b4f753a134000ae73d6bd58d