国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Pertanyaan bersama berbilang jadual Mysql

Banyak kali dalam perniagaan sebenar, kami tidak hanya menanyakan jadual.

  1. Dalam sistem e-dagang, tanya pengguna yang belum membeli produk.

  2. Bank boleh menanyakan rekod pelanggaran, dan pada masa yang sama menanyakan

  3. meminta maklumat pemenang dan maklumat asas pemenang .

Jika perkara di atas hanyalah situasi lajur, kita perlu menanyakan kedua-dua jadual bersama-sama.

Dalam perniagaan yang dinyatakan di atas, berbilang jadual perlu disatukan untuk membuat pertanyaan bagi mendapatkan hasil, dan intipati pertanyaan bersama berbilang jadual ialah: sambungan jadual.

Sambungan jadual

Apabila anda perlu menanyakan medan dalam berbilang jadual, anda boleh menggunakan sambungan jadual. Cantuman meja dibahagikan kepada cantuman dalam dan cantuman luar.

  1. Campuran dalaman: Sertai rekod yang medan dalam dua jadual mempunyai perhubungan cantum yang sepadan dengan perhubungan cantum untuk membentuk set rekod.

  2. Sambungan luar: Rekod lain yang tidak dapat dipadankan akan dipilih, dibahagikan kepada sambung kiri luar dan sambung kanan luar.

Sebelum eksperimen pembelajaran, saya menyediakan dua jadual data simulasi untuk semua orang:

  1. Jadual pengguna untuk menyimpan maklumat pengguna
  2. Jadual pesanan, yang menyimpan pengguna mana yang membeli produk mana

penyata penciptaan jadual pengguna

BUAT JADUAL JIKA TIDAK WUJUD user (
uid int(11) BUKAN NULL,
username varchar(30) BUKAN NULL,
password char(32) BUKAN NULL
) ENGINE=CHARSET LAALA InnoDB=utf8;

BUAT JADUAL JIKA TIDAK WUJUD order_goods (
oid int(11) BUKAN NULL,
uid int(11) BUKAN NULL,
name varchar(50) BUKAN NULL,
buytime int(11) BUKAN NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

data jadual pengguna adalah seperti berikut:

uidusernamepassword
1景甜123456
2王小二245667
3王寶強(qiáng)1235531
4井柏然123455
5范冰冰5abcwa
6黃曉明abcdeef
7anglebabycaption
8TFBOYSabcdwww
9安小超12tfddwd
10高小峰3124qwqw
11李小強(qiáng)323fxfvdvd
12李小超311aqqee
13韓小平121rcfwrfq
14宋小康123123tcsd
15佟小剛3cxvdfs

data barang_pesanan adalah seperti berikut:

oiduidnamebuytime
110蘋果鼠標(biāo)1212313
23iphone 12s123121241
312雪碧13232333
415
34242123
53iphone 鍵盤12123413

Nota: Dalam jadual barang_pesanan di atas, uid merujuk kepada medan uid dalam jadual pengguna. Dalam jadual di atas, baris data dengan oid ialah 1 dan pengguna dengan uid ialah 10. Untuk pengguna dengan uid 10 dalam jadual pengguna: Gao Xiaofeng. Pengguna membeli tetikus Apple. Masa belian masa pembelian ialah cap waktu unix.

Penyertaan dalaman

Sintaks asas 1:

類別詳細(xì)解示
基本語法select 表1.字段 [as 別名],表n.字段  from 表1 [別名],表n where 條件;
示例select user.uid ,user.username as username,order_goods.oid,order_goods.uid,order_goods.name as shopname from user,order_goods  where user.uid = order_goods.uid;
示例說明查詢商品表中哪些用戶購(gòu)買過商品,并將用戶信息顯示出來

Nota: Dalam contoh berikut, jadual dari menggunakan alias jadual.

Oleh kerana nama jadual terlalu panjang, mudah untuk melakukan kesilapan setiap kali anda menulisnya. Kita boleh mengikuti jadual secara langsung dengan rentetan bahasa Inggeris yang disingkat. Apabila menyambung medan tadi, hanya gunakan rentetan singkatan.medan.

mysql> pilih u.uid ,u.username sebagai nama pengguna,o.oid,o.uid,o.name sebagai nama kedai daripada pengguna u,order_goods o where u.uid = o.uid;
+-----+-----------+-----+-----+---------------+
|. uid |. nama kedai | +-----+-----------+-----+-----+---------------+
|. 10 |. Gao Xiaofeng | |. 3 |. Wang Baoqiang | |. 12 |. Li Xiaochao | |.. Tong Xiaogang | |. 3 |. Li Wenkai | +-----+-----------+-----+-----+---------------+
5 baris dalam set (0.00 saat)


Sintaks asas 2:

Hasilnya konsisten dengan Tatabahasa Asas 1.

mysql> pilih user.uid ,user.username sebagai nama pengguna,order_goods.oid,order_goods.uid,order_goods.name sebagai nama kedai daripada pengguna inner join order_goods pada user.uid = order_goods. uid;
+-----+-----------+-----+-----+---------------+
|. uid |. nama kedai | +-----+-----------+-----+-----+---------------+
|. 10 |. Gao Xiaofeng | |. 3 |. Wang Baoqiang | |. 12 |. Li Xiaochao | |.. Tong Xiaogang | |. 3 |. Wang Baoqiang | +-----+-----------+-----+-----+---------------+
5 baris dalam set (0.00 saat)


Sambungan luar

Cambung luar dibahagikan kepada cantuman kiri dan pautan kanan Definisi khusus adalah seperti berikut.

Cabutan kiri: Mengandungi semua rekod dalam jadual kiri walaupun rekod yang tidak sepadan dengannya dalam jadual kanan

mysql> pilih * daripada pengguna kiri sertai order_goods pada pengguna .uid = order_goods.uid;
+-----+-----------+------------+------+ - -----+--------------+----------+
| nama pengguna | masa beli |
+-----+-----------+------------+------+----- - +--------------+---------+
|. 1212313 | >|. 3 |. 1235531 | |. Tong Xiaogang | 15 |. 34242123 | NULL |
|. 2 | Wang Xiao |. NULL |. NULL | ?? >| 6 | abcdeef |. NULL |. NULL |. | NULL |
| 9 |. 12tfddwd |. NULL | 123tcsd |. NULL |. ----------+------+------+-----------------+------ --- -+
16 baris dalam set (0.00 saat)

Cantum kanan: Mengandungi semua rekod dalam jadual yang betul walaupun rekod yang tidak sepadan dengannya dalam jadual yang betul

類別詳細(xì)解示
基本語法select 表1.字段 [as 別名],表n.字段  from 表1 right JOIN 表n on  條件;
示例select *  from user right join order_goods  on  user.uid = order_goods.uid;
示例說明查詢商品表中哪些用戶購(gòu)買過商品,并將用戶信息顯示出來

mysql> pilih * daripada user right join order_goods pada pengguna .uid = order_goods.uid;
+------+-----------+----------+-----+-- - --+----------------+---------+
| nama pengguna | ??>+------+-----------+----------+-----+-----+---- - ---------+----------+
| 3124qwqw | Baoqiang |. 311aqqee | ng Xiaogang |. 3cxvdfs | ?? >|. 3 |. Wang Baoqiang |. 5 |. --- +-----+-----+----------------+-----------+
5 baris dalam set (0.00 saat)

Subquery

Kadangkala, apabila kita membuat pertanyaan, syarat yang diperlukan adalah hasil daripada penyataan pilih yang lain, maka kita perlu menggunakan subquery. Kata kunci yang digunakan untuk subkueri termasuk dalam, bukan dalam, =, !=, wujud, tidak wujud, dsb.

Contoh 1:

mysql> pilih * daripada pengguna di mana uid masuk (1,3,4);
+-----+-----------+----------+
|. nama pengguna | +-----+-----------+----------+
|. 1 |. Jing Tian | |. 3 |. Wang Baoqiang | 4 |. Jing Boran | +-----+-----------+----------+
3 baris dalam set (0.00 saat)



Contoh 2:

mysql> ; +-----+-----------+----------+

|. nama pengguna | +-----+-----------+----------+
|. 10 | |. 3 |. Wang Baoqiang | |. 12 |. Li Xiaochao | |. 15 |. Tong Xiaogang | +-----+-----------+----------+

4 baris dalam set (0.00 saat)


mysql> pilih * dari emp di mana deptno masuk (pilih deptno dari dept);

Rekod kesatuan

Gunakan kesatuan dan Kesatuan semua kata kunci digunakan untuk menanyakan data daripada dua jadual mengikut syarat pertanyaan tertentu, dan kemudian menggabungkan hasil dan memaparkannya bersama-sama. Perbezaan utama antara kedua-duanya ialah hasil digabungkan secara langsung, manakala kesatuan ialah hasil daripada melaksanakan operasi yang berbeza pada keputusan selepas gabungan semua, dan mengalih keluar rekod pendua.

mysql> pilih uid daripada kesatuan pengguna pilih uid daripada order_goods;

+-----+

|. uid |

+-----+

|. 1 |

|. 2 |

|. 3 |
類別詳細(xì)解示
基本語法select語句1 union[all] select語句2
示例select *  from user where uid in (1,3,4);
示例說明將商品表中的用戶信息和用戶表中的用戶信息的結(jié)果組合在一起
|. 4 |
|. 5 |

|. 6 |
|. 7 |
|. 8 |
|. 9 |
|. 10 |
|. 11 |
|. 12 |
|. 13 |
|. 14 |
|. 15 |
+-----+
15 baris dalam set (0.00 saat)


Meneruskan pembelajaran
||
<?php echo "Hello Mysql"; ?>