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

Comment interroger plusieurs données dans thinkphp

藏色散人
Libérer: 2022-12-05 09:26:45
original
2188 Les gens l'ont consulté

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

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

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

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

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

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语句,查看一下
Copier après la connexion

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

2.1, join()2 table query

$user = new Model('user');
$list = $user->join('RIGHT JOIN user_profile ON user_stats.id = user_profile.typeid' );
Copier après la connexion

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

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

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!

É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
Derniers numéros
ThinkPHP Pourquoi utiliser composer ?
Depuis 1970-01-01 08:00:00
0
0
0
thinkphp télécharger des fichiers
Depuis 1970-01-01 08:00:00
0
0
0
versions thinkphp prises en charge par php6
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal