使用JOIN和PIVOT进行SQL查询

时间:2017-02-17 07:46:05

标签: mysql sql join pivot

在我的项目中,我有两个表和一个数据透视表,如果可能,我希望通过一个SQL查询获得预期的结果。

这是我的表格:

TABLE_1

id | title         | description
-----------------------------------------------
1  | restaurant_1  | lorem ipsum
2  | restaurant_2  | lorem ipsum
3  | restaurant_3  | lorem ipsum

TABLE_2

id | title    | description   | src
-----------------------------------------------
1  | image_1  | lorem ipsum   | url/
2  | image_2  | lorem ipsum   | url/
3  | image_3  | lorem ipsum   | url/

table_1_2

id | restaurant_id    | image_id
-----------------------------------------------
1  | 1                | 1
2  | 2                | 2
3  | 2                | 3
4  | 3                | 2

我使用PHP将结果推送到数组和json_encode(数组):

  $result = mysqli_query($link, $query);

  // Add results to array
  $restaurants = [];

  while($result_arr = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    array_push($restaurants, $result_arr);
  }

  // close connection
  mysqli_close($link);

  // return json
  echo json_encode($restaurants);

然后我期待以下结果:

restaurants = [{
   'id': 1,
   'title': 'restaurant_1'
   'description': 'lorem ipsum'
   'images': [{'id': 1, 'description': 'lorem ipsum', 'src': 'url/'}]
  },{
   'id': 2,
   'title': 'restaurant_2'
   'description': 'lorem ipsum'
   'images': [{'id': 2, 'description': 'lorem ipsum', 'src': 'url/'},
              {'id': 3, 'description': 'lorem ipsum', 'src': 'url/'}]  
  },{
   'id': 3,
   'title': 'restaurant_3'
   'description': 'lorem ipsum'
   'images': [{'id': 2, 'description': 'lorem ipsum', 'src': 'url/'}]
 }];

我尝试获得预期结果的所有尝试都返回一个空数组。

我希望你们中的一些人有一个想法,可以帮助我解决这个问题。

问候拉斯

0 个答案:

没有答案