Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Json từ hai bảng mysql trong PHP

Bạn đang sử dụng số lượng truy vấn cực kỳ lớn. Tại sao không thực hiện nó trong một truy vấn duy nhất?

SELECT * FROM `Restaurants` `r`
    LEFT JOIN `Dishes` `d` ON (`r`.`id` = `d`.`f_id`)
ORDER BY `r`.`id` ASC 

và sau đó sử dụng kết quả để xây dựng đối tượng JSON.

EDIT Để dễ dàng lặp lại kết quả hơn, tôi đã thay đổi một chút Truy vấn thành:

SELECT 
`r`.`id` as `restaurantId`, 
`r`.`name`, 
`r`.`info`, 
`d`.`id` AS `dishId`,
`d`.`dish`,
`d`.`description`
FROM `restaurants` `r`
    LEFT JOIN `dishes` `d` ON (`r`.`id` = `d`.`f_id`)
ORDER BY `r`.`id` ASC

kết quả sẽ giống như sau:restaurantId, name, info, dishId, dish, description

bây giờ bạn có thể lặp lại kết quả như sau:

$jsonArray = array();

foreach ($record as $dishDetails){
    // details of the restaurant
    $jsonArray[$dishDetails['f_id']]['name'] = $dishDetails['name'];
    $jsonArray[$dishDetails['f_id']]['info'] = $dishDetails['info'];

    // build the dishes of the restaurant
    $jsonArray[$dishDetails['f_id']]['dishes'][$dishDetails['dishId']]['dish'] = $dishDetails['dish']
    $jsonArray[$dishDetails['f_id']]['dishes'][$dishDetails['dishId']]['description'] = $dishDetails['description']
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xác minh mã cửa hàng trong mysql và cập nhật bảng nếu kết quả trả về true

  2. CHÈN SQL từ CHỌN

  3. Tối ưu hóa truy vấn MySQL để tránh quét nhiều hàng

  4. Bảng con nào trong Mối quan hệ Nhận dạng hoặc Không Định danh?

  5. Làm thế nào để chuyển bảng mysql sang hive?