Maison > cadre php > PensezPHP > A quoi sert join dans thinkphp5

A quoi sert join dans thinkphp5

WBOY
Libérer: 2022-04-25 11:01:16
original
5500 Les gens l'ont consulté

Dans thinkphp5, join est utilisé pour interroger les données de deux ou plusieurs tables en fonction de la relation entre les colonnes de ces tables. C'est l'une des méthodes d'opération cohérentes. Le résultat renvoyé est un objet modèle et la syntaxe est "join (). Le nom de la table à associer et l'alias [condition d'association [type d'association]])".

A quoi sert join dans thinkphp5

L'environnement d'exploitation de cet article : système Windows 10, ThinkPHP version 5, ordinateur Dell G3.

À quoi sert join dans thinkphp5 ?

La méthode JOIN est également l'une des méthodes d'opération cohérentes, qui est utilisée pour interroger les données de deux ou plusieurs tables en fonction de la relation entre les colonnes de ces tables.

Explication

object join ( mixed join [, mixed $condition = null [, string $type = 'INNER']] )
Copier après la connexion

Paramètres

join : Le nom (complet) de la table et l'alias à associer, prend en charge trois méthodes d'écriture :

  • Méthode d'écriture 1 : ['Nom complet de la table ou sous-requête'=>'Alias' ]

  • Écriture 2 : 'Alias ​​du nom complet de la table'

  • Écriture 3 : 'Nom de la table sans préfixe de table de données'

condition : Condition d'association. Il peut s'agir d'une chaîne ou d'un tableau. Lorsqu'il s'agit d'un tableau, chaque élément est une condition associée.

type : type d'association. Peut être : INTÉRIEUR, GAUCHE, DROITE, COMPLET, insensible à la casse, la valeur par défaut est INTÉRIEUR.

Valeur de retour : l'objet modèle

join a généralement les types suivants. Différents types d'opérations de jointure affecteront les résultats des données renvoyées.

  • INNER JOIN : équivalent à JOIN (type JOIN par défaut), s'il y a au moins une correspondance dans le tableau, renvoie les lignes

  • LEFT JOIN : renvoie toutes les lignes du tableau de gauche même s'il n'y a aucune correspondance dans la table de droite

  • RIGHT JOIN : renvoie toutes les lignes de la table de droite même s'il n'y a pas de correspondance dans la table de gauche

  • FULL JOIN : renvoie les lignes tant qu'il y a une correspondance dans l'une des tables

L'exemple est le suivant :

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();
Copier après la connexion
Db::table('think_artist')
->alias('a')
->join('__WORK__ w','a.id = w.artist_id')
->join('__CARD__ c','a.card_id = c.id')
->select();
Copier après la connexion
$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();
Copier après la connexion

Les trois méthodes d'écriture ci-dessus ont le même effet __WORK__ et __CARD__ seront converties en think_work et think_card lors de l'analyse finale. Remarque : Le nom de la table au milieu de « _table name_ » doit être en majuscule. Si vous ne souhaitez pas utiliser d'alias, le nom complet de la table doit être utilisé dans les conditions suivantes.

Db::table('think_user')->join('__WORK__','__ARTIST__.id = __WORK__.artist_id')->select();
Copier après la connexion

La méthode INNER JOIN est utilisée par défaut. Si vous devez utiliser d'autres méthodes JOIN, vous pouvez la remplacer par

Db::table('think_user')->alias('a')->join('word w','a.id = w.artist_id','RIGHT')->select();
Copier après la connexion

Le nom de la table peut également être une sous-requête

$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();
Copier après la connexion

Puisque l'instruction renvoyée par buildSql contient (), il n'est pas nécessaire d'ajouter () aux deux extrémités.

Apprentissage recommandé : "

Tutoriel vidéo PHP

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal