Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Menggabungkan hasil dari dua tabel ke dalam JSON

Apakah kode ini menghasilkan output yang Anda butuhkan?

$result_w = $conn->query("SELECT * FROM words;");
$results_w = $result_w->fetch_all(MYSQLI_ASSOC);

$words_per_paragraph = [];
foreach($results_w as $key => $row) {
    $words_per_paragraph[$row['paragraph_no']][] = $row;
}

$result_p = $conn->query("SELECT * FROM paragraph;");
$results_p = $result_p->fetch_all(MYSQLI_ASSOC);

$data = [];
foreach($results_p as $key => $row) {
    $p_no = $row['paragraph_no'];
    $words = [];
    if(array_key_exists($p_no, $words_per_paragraph)) {
        $words = $words_per_paragraph[$p_no];
    }
    $data[$p_no] = [
        'words' => $words,
        'paragraph' => $row
    ];
}

Isi $data (Saya belum menambahkan kata apa pun ke paragraf 2 untuk tujuan pengujian):

{
   "1":{
      "words":{
         "id":"4",
         "book_no":"1",
         "paragraph_no":"1",
         "word_no":"4",
         "word":"you"
      },
      "paragraph":{
         "id":"1",
         "book_no":"1",
         "paragraph_no":"1",
         "paragraph":"hello how are you"
      }
   },
   "2":{
      "words":[

      ],
      "paragraph":{
         "id":"3",
         "book_no":"1",
         "paragraph_no":"2",
         "paragraph":"I'm fine and you?"
      }
   }
}

Mungkin Anda dapat mengubah struktur tabel database untuk mendapatkan semuanya dalam satu pernyataan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menulis kueri bergabung di Volusion API

  2. Ganti di MySQL

  3. Lulus indeks ke tabel sementara dari tabel biasa?

  4. mencocokkan seluruh kata sambil mengabaikan imbuhan kata menggunakan regex

  5. Performa untuk menelusuri 100 juta catatan