W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如何使用joomla從數(shù)據(jù)庫中查詢數(shù)據(jù)
下面是使用JDatabaseQuery類的join方法,我們可以從多個表中查詢數(shù)據(jù)。iner方法有兩個參數(shù),一個指定鏈接的類型(inner,outer,left,right),另外一個是鏈接的條件。inner中,我們可以使用所有原生的SQL關(guān)鍵詞,比如AS對表進(jìn)行別名,ON來指定關(guān)聯(lián)。代碼如下:
// 得到數(shù)據(jù)庫鏈接
$db = JFactory::getDbo();
// 創(chuàng)建新的查詢對象
$query =$db->getQuery(true);
// 查詢內(nèi)容
$query
->select(array('a.*','b.username','b.name'))
->from($db->quoteName('#__content','a'))
->join('INNER',$db->quoteName('#__users','b') .' ON ' .$db->quoteName('a.created_by') .' = ' .$db->quoteName('b.id'))
->where($db->quoteName('b.username') .' LIKE ' .$db->quote('a%'))
->order($db->quoteName('a.created') .' DESC');
// 設(shè)置查詢
$db->setQuery($query);
// 獲得結(jié)果
$results =$db->loadObjectList();
上面的join方法使我們能夠查詢#__content表和#__users表.為了方便使用,對inner的4種類型進(jìn)行了封裝,分別提供了4個方法:
我們可以使用多個join方法來查詢兩個或者兩個以上的表。代碼如下:
$query
->select(array('a.*','b.username','b.name','c.*','d.*'))
->from($db->quoteName('#__content','a'))
->join('INNER',$db->quoteName('#__users','b') .' ON ' .$db->quoteName('a.created_by') .' = ' .$db->quoteName('b.id'))
->join('LEFT',$db->quoteName('#__user_profiles','c') .' ON ' .$db->quoteName('b.id') .' = ' .$db->quoteName('c.user_id'))
->join('RIGHT',$db->quoteName('#__categories','d') .' ON ' .$db->quoteName('a.catid') .' = ' .$db->quoteName('d.id'))
->where($db->quoteName('b.username') .' LIKE ' .$db->quote('a%'))
->order($db->quoteName('a.created') .' DESC');
有時候,為了避免字段名的沖突,我們需要用AS對表進(jìn)行別名或者直接使用$db->quoteName的第二個參數(shù)對表進(jìn)行別名。代碼如下:
$query
->select('a.*')
->select($db->quoteName('b.username','username'))
->select($db->quoteName('b.name','name'))
->from($db->quoteName('#__content','a'))
->join('INNER',$db->quoteName('#__users','b') .' ON ' .$db->quoteName('a.created_by') .' = ' .$db->quoteName('b.id'))
->where($db->quoteName('b.username') .' LIKE ' .$db->quote('a%'))
->order($db->quoteName('a.created') .' DESC');
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: