Heim  >  Artikel  >  PHP-Framework  >  So fragen Sie mehrere Daten in thinkphp ab

So fragen Sie mehrere Daten in thinkphp ab

藏色散人
藏色散人Original
2022-12-05 09:26:452095Durchsuche

So fragen Sie mehrere Daten in thinkphp ab: 1. Verwenden Sie die Table-Methode, um mehrere Tabellen abzufragen, mit einer Syntax wie „$Model->table('think_blog blog, think_type type')“ 2. Verwenden Sie die Join-Methode, um Abfrage, der Code lautet wie folgt: „$Model->join('work ON artist.id = work.artist_id')“.

So fragen Sie mehrere Daten in thinkphp ab

Die Betriebsumgebung dieses Tutorials: Windows 7-System, ThinkPHP Version 5, Dell G3-Computer.

Wie frage ich mehrere Daten in thinkphp ab?

THINKPHP medienbezogene Abfrage (Mehrtabellenabfrage)

THINKPHP medienbezogene Abfrage (Mehrtabellenabfrage) kann die table()-Methode oder die Join-Methode verwenden, siehe Beispiel:

1. Definieren Sie die auszuführende Operation. Der Name der Datentabelle kann sich dynamisch ändern. Sie müssen den vollständigen Namen der Datentabelle einschließlich des Präfixes angeben :

$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();

Die Parameter der Table-Methode unterstützen Strings und Arrays. Verwendung im Array-Modus:

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

Der Vorteil der Verwendung einer Array-Definition besteht darin, dass Fehler aufgrund von Konflikten zwischen Tabellennamen und Schlüsselwörtern vermieden werden können.

Hinweis: Wenn die Tabellenmethode nicht definiert ist, wird standardmäßig automatisch die Datentabelle abgerufen, die dem aktuellen Modell entspricht oder durch dieses definiert wird.

2. Join-Methode: Abfrage-Join-Unterstützung Die Parameter der Join-Methode unterstützen Zeichenfolgen und Arrays, und die Join-Methode ist die einzige Methode, die in einer kohärenten Operation mehrmals aufgerufen werden kann. Beispiel:

$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();

Die LEFT JOIN-Methode wird standardmäßig verwendet. Wenn Sie andere JOIN-Methoden verwenden müssen, können Sie sie in

$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();

ändern. Wenn die Parameter der Join-Methode Arrays sind, kann die Join-Methode nur verwendet werden Wird nur einmal verwendet und kann nicht mit der String-Methode gemischt werden.

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

Die Verwendung dieser kohärenten Betriebsmethode kann die Codeklarheit und die Entwicklungseffizienz der Datenabfrage effektiv verbessern.

So zeigen Sie nacheinander ausgeführte SQL-Anweisungen an:

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

Beispiel 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 Tabellenabfrage

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

2.2, join() Multi-Table-Abfrage

        $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. Native Abfrage

$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);

Empfohlenes Lernen: „thinkPHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo fragen Sie mehrere Daten in thinkphp ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn