Rumah > rangka kerja php > ThinkPHP > teks badan

Apakah kegunaan join dalam thinkphp5

WBOY
Lepaskan: 2022-04-25 11:01:16
asal
5399 orang telah melayarinya

Dalam thinkphp5, join digunakan untuk menanyakan data daripada dua atau lebih jadual berdasarkan hubungan antara lajur dalam jadual ini. Hasil yang dikembalikan ialah objek model. join (nama jadual untuk dikaitkan dan alias [keadaan persatuan [jenis persatuan]])".

Apakah kegunaan join dalam thinkphp5

Persekitaran pengendalian artikel ini: sistem Windows 10, ThinkPHP versi 5, komputer Dell G3.

Apakah kegunaan join dalam thinkphp5

Kaedah JOIN juga merupakan salah satu kaedah operasi koheren, yang digunakan untuk membuat pertanyaan daripada dua atau lebih jadual berdasarkan hubungan antara lajur dalam data-data ini.

Penerangan

object join ( mixed join [, mixed $condition = null [, string $type = 'INNER']] )
Salin selepas log masuk

Parameter

serta: Nama jadual (lengkap) dan alias yang akan dikaitkan, menyokong tiga kaedah penulisan:

  • Kaedah penulisan 1: ['Lengkapkan nama jadual atau subquery'=>'alias']

  • Kaedah penulisan 2: 'Lengkapkan nama jadual alias'

  • Penulisan 3: 'Nama jadual tanpa awalan jadual data'

keadaan: keadaan persatuan. Ia boleh menjadi rentetan atau tatasusunan Apabila ia adalah tatasusunan, setiap elemen ialah syarat yang berkaitan.

jenis: jenis yang berkaitan. Boleh jadi: DALAM, KIRI, KANAN, PENUH, tidak peka huruf besar-kecil, lalai ialah DALAM.

Nilai pulangan: Objek model

bergabung biasanya mempunyai jenis berikut. Jenis operasi gabungan yang berbeza akan menjejaskan hasil data yang dikembalikan.

  • SERTAI DALAM: Setara dengan JOIN (jenis JOIN lalai), jika terdapat sekurang-kurangnya satu perlawanan dalam jadual, baris dikembalikan

  • LEFT JOIN : Kembalikan semua baris dari jadual kiri walaupun tiada padanan dalam jadual kanan

  • RIGHT JOIN: Kembalikan semua baris dari jadual kanan walaupun tiada padanan dalam meja sebelah kiri

  • SERTAI PENUH: Selagi ada perlawanan dalam salah satu jadual, kembalikan baris

Contohnya seperti berikut :

Db::table('think_artist')
->alias('a')
->join('think_work w','a.id = w.artist_id')
->join('think_card c','a.card_id = c.id')
->select();
Salin selepas log masuk
Db::table('think_artist')
->alias('a')
->join('__WORK__ w','a.id = w.artist_id')
->join('__CARD__ c','a.card_id = c.id')
->select();
Salin selepas log masuk
$join = [
    ['think_work w','a.id=w.artist_id'],
    ['think_card c','a.card_id=c.id'],
];
Db::table('think_user')->alias('a')->join($join)->select();
Salin selepas log masuk

Tiga kaedah penulisan di atas mempunyai kesan yang sama __WORK__ dan __CARD__ akan ditukar kepada think_work dan think_card semasa analisis akhir. Nota: Nama jadual di tengah kaedah '_table name_' perlu menggunakan huruf besar

Jika anda tidak mahu menggunakan alias, nama penuh jadual mesti digunakan dalam keadaan seterusnya. Anda boleh menggunakan kaedah berikut

Db::table('think_user')->join('__WORK__','__ARTIST__.id = __WORK__.artist_id')->select();
Salin selepas log masuk

Kaedah INNER JOIN digunakan secara lalai Jika anda perlu menggunakan kaedah JOIN lain, anda boleh menukarnya kepada

Db::table('think_user')->alias('a')->join('word w','a.id = w.artist_id','RIGHT')->select();
Salin selepas log masuk

Nama jadual. juga boleh menjadi subkueri

$subsql = Db::table('think_work')->where(['status'=>1])->field('artist_id,count(id) count')->group('artist_id')->buildSql();
Db::table('think_user')->alias('a')->join([$subsql=> 'w'], 'a.artist_id = w.artist_id')->select();
Salin selepas log masuk

Kerana buildSql mengembalikan Pernyataan tersebut mengandungi (), jadi tidak perlu menambah () pada kedua-dua hujungnya.

Pembelajaran yang disyorkan: "Tutorial Video PHP"

Atas ialah kandungan terperinci Apakah kegunaan join dalam thinkphp5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!