Rumah >pembangunan bahagian belakang >masalah PHP >PHP dua jadual menggabungkan pertanyaan
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.
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.
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;
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.
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!