table('think_blog blog, think_type type')" 2. Utilisez la méthode Join pour interroger, avec code tel que "$Model ->join('work ON artiste.id = work.artist_id')"."/> table('think_blog blog, think_type type')" 2. Utilisez la méthode Join pour interroger, avec code tel que "$Model ->join('work ON artiste.id = work.artist_id')".">

Maison  >  Article  >  cadre php  >  Comment interroger plusieurs données dans thinkphp

Comment interroger plusieurs données dans thinkphp

藏色散人
藏色散人original
2022-12-05 09:26:452112parcourir

Comment interroger plusieurs données dans thinkphp : 1. Utilisez la méthode Table pour interroger plusieurs tables, avec une syntaxe telle que "$Model->table('think_blog blog, think_type type')"; requête, le code est le suivant "$Model->join('work ON artiste.id = work.artist_id')".

Comment interroger plusieurs données dans thinkphp

L'environnement d'exploitation de ce tutoriel : système Windows 7, ThinkPHP version 5, ordinateur Dell G3.

Comment interroger plusieurs données dans thinkphp ?

Requête liée au support THINKPHP (requête multi-tables)

La requête liée au support THINKPHP (requête multi-tables) peut utiliser la méthode table() ou la méthode join, veuillez voir l'exemple :

1. définir l'opération à effectuer Le nom de la table de données peut changer dynamiquement le nom de la table de données pour l'opération en cours Vous devez écrire le nom complet de la table de données, y compris le préfixe. Vous pouvez utiliser un alias, par exemple. :

$Model->Table('think_user user')
->where('status>1')
->select();
$Model->table('think_blog blog,think_type type')
->where('blog.typeid=type.id')
->field('blog.id as id,blog.title,blog.content,type.typename as type')
->order('blog.id desc' )
->limit(5)
->select();

Les paramètres de la méthode Table prennent en charge les chaînes et les tableaux. Utilisation en mode tableau :

$Model->Table(array('think_user'=>'user','think_group'=>'group'))
->where('status>1')
->select();

L'avantage d'utiliser la définition de tableau est qu'elle peut éviter les erreurs dues aux conflits entre les noms de table et les mots-clés.

Remarque : Si la méthode table n'est pas définie, la table de données correspondant à ou définie par le modèle courant sera automatiquement obtenue par défaut.

2. Méthode Join : prise en charge de Query Join. Les paramètres de la méthode Join prennent en charge les chaînes et les tableaux, et la méthode join est la seule méthode qui peut être appelée plusieurs fois dans une opération cohérente. Par exemple :

$Model->join('work ON artist.id = work.artist_id')
->join('card ON artist.card_id = card.id')
->select();
//Left Join
$Model->table('user U')
->join('news N on U.id=N.cid')
->field('U.*,N.*')
->order('id desc')
->limit('8')
->findall();

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

$Model->join('RIGHT JOIN work ON artist.id = work.artist_id')
->select();
//Right Join
$Model->table('user U')
->join(array('right','news N on U.id=N.cid'))
->field('U.*,N.*')
->order('id desc')
->limit('8')
->findall();

Si les paramètres de la méthode join sont des tableaux, la méthode join ne peut être que. utilisé une fois, et il ne peut pas être mélangé avec la méthode string use.

$Model->join(array(' work ON artist.id = work.artist_id', 'card ON artist.card_id = card.id'))
->select()

L'utilisation de cette méthode de fonctionnement cohérente peut améliorer efficacement la clarté du code et l'efficacité du développement des requêtes de données.

Comment afficher les instructions SQL exploitées consécutivement :

echo $Model->getLastSql(); //打印一下SQL语句,查看一下

Exemple 2 :

1, table()

$list = $user->table('user_status stats, user_profile profile')->where('stats.id = profile.typeid')->field('stats.id as id, stats.display as display, profile.title as title,profile.content as content')->order('stats.id desc' )->select();

2.1, join()2 table query

$user = new Model('user');
$list = $user->join('RIGHT JOIN user_profile ON user_stats.id = user_profile.typeid' );

2.2, join() multi-table query

        $list = $Form->join('think_sort ON think_form.sort_id = think_sort.sort_id' )->join('think_brand ON think_form.brand_id = think_brand.brand_id' )->select();

3. Requête native

$Model = new Model();
$sql = 'select a.id,a.title,b.content from think_test1 as a, think_test2 as b where a.id=b.id '.$map.' order by a.id '.$sort.' limit '.$p->firstRow.','.$p->listRows;
$voList = $Model->query($sql);

Apprentissage recommandé : "Tutoriel vidéo thinkPHP"

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!

Déclaration:
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