Rumah >pembangunan bahagian belakang >masalah PHP >PHP dua jadual menggabungkan pertanyaan

PHP dua jadual menggabungkan pertanyaan

王林
王林asal
2023-05-07 09:25:07657semak imbas

Dalam pembangunan PHP, kami sering menghadapi situasi di mana kami perlu melakukan pertanyaan bersama dalam berbilang jadual data. Pada masa ini, kita boleh menggabungkan dua jadual dengan menggunakan kata kunci kesatuan dalam pernyataan SQL. Artikel ini akan memperkenalkan cara menggunakan kata kunci kesatuan dalam PHP untuk menggabungkan dua jadual.

  1. Sintaks asas

Kita boleh menggunakan sintaks berikut untuk menggabungkan dua jadual:

SELECT column1, column2, ... FROM table1
UNION
SELECT column1, column2, ... FROM table2;

Antaranya, lajur1, lajur2, ... ialah nama lajur yang perlu disoal, jadual1 dan jadual2 ialah nama jadual data yang perlu disoal. Kata kunci Union digunakan untuk menggabungkan hasil dua pernyataan SELECT ke dalam set hasil pertanyaan. Apabila melakukan pertanyaan gabungan, anda perlu memastikan bahawa bilangan dan jenis lajur yang dipilih dalam dua pernyataan SELECT mestilah konsisten, jika tidak ralat akan berlaku.

  1. Gunakan kata kunci UNION ALL

Selain menggunakan kata kunci UNION untuk pertanyaan gabungan jadual data, kami juga boleh menggunakan kata kunci UNION ALL untuk pertanyaan gabungan. Tidak seperti kata kunci UNION, kata kunci UNION ALL akan menggabungkan semua rekod dalam dua set hasil pertanyaan, termasuk rekod pendua. Ini memerlukan perhatian khusus kerana dalam situasi sebenar kita mungkin perlu menyimpan rekod pendua.

Berikut ialah sintaks asas untuk menggabungkan jadual data menggunakan kata kunci KESATUAN SEMUA:

SELECT column1, column2, ... FROM table1
UNION ALL
SELECT column1, column2, ... FROM table2;
  1. Kod sampel

Untuk lebih memahami cara untuk Kata kunci kesatuan digunakan dalam PHP untuk melaksanakan pertanyaan gabungan jadual data Kita boleh cuba menggunakan kod untuk menunjukkan. Katakan kita mempunyai dua jadual data pengguna dan pekerja Struktur data mereka adalah seperti berikut:

user表:
id    name     age    city
1     Tom      22     北京
2     Jerry    23     上海
3     Peter    24     广州

employee表:
id    name     age    salary
1     Mary     25     2000
2     Lucy     26     2500
3     Jack     27     3000

Kini kita perlu menanyakan semua rekod dalam jadual pengguna dan jadual pekerja. Kita boleh menggunakan kod berikut untuk mencapai operasi ini:

<?php
  try {
    $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', 'password');
    $sql = "SELECT id, name, age, city FROM user
            UNION ALL
            SELECT id, name, age, salary as city FROM employee";
    $stmt = $pdo->query($sql);
    echo "<table>";
    echo "<tr><td>ID</td><td>Name</td><td>Age</td><td>City</td></tr>";
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      echo "<tr>";
      echo "<td>".$row['id']."</td>";
      echo "<td>".$row['name']."</td>";
      echo "<td>".$row['age']."</td>";
      echo "<td>".$row['city']."</td>";
      echo "</tr>";
    }
    echo "</table>";
  } catch (PDOException $e) {
    echo $e->getMessage();
  }
?>

Dalam kod, kita mula-mula mencipta objek sambungan PDO, dan kemudian menggunakan kata kunci UNION ALL dalam pernyataan SQL untuk menggabungkan jadual pengguna dan jadual pekerja untuk pertanyaan. Akhir sekali, kami memperoleh hasil pertanyaan baris demi baris melalui fungsi ambil dan keluarkan hasilnya ke jadual HTML.

  1. Ringkasan

Dengan menggunakan kata kunci kesatuan, kami boleh melakukan pertanyaan bersama dengan mudah pada berbilang jadual data untuk mendapatkan hasil data yang diingini. Apabila melakukan pertanyaan gabungan, anda perlu ambil perhatian bahawa bilangan dan jenis lajur yang dipilih dalam dua pernyataan SELECT mestilah konsisten, jika tidak ralat akan berlaku. Selain itu, kami juga boleh menggunakan kata kunci UNION ALL untuk menggabungkan jadual data untuk mengekalkan semua rekod pendua. Dalam pembangunan sebenar, kita harus memilih jenis yang paling sesuai mengikut keperluan untuk melaksanakan pertanyaan gabungan jadual data.

Atas ialah kandungan terperinci PHP dua jadual menggabungkan pertanyaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:padam edit phpArtikel seterusnya:padam edit php