Heim > Artikel > PHP-Framework > So fragen Sie mehrere Daten in thinkphp ab
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')“.
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!