Anda dapat menggunakan kode berikut.
$query = db_select('digitaliq_flds_by_node', 'a')->fields('a');
$alias = $query->join('digitaliq_fld_category', 'b', 'a.fld_id = %alias.fld_id AND a.fld_collection_id = %alias.fld_collection_id AND a.fld_group_name = %alias.fld_group_name');
$terms = $query->execute();
Panggilan ke SelectQuery :: join () (seperti SelectQuery :: leftJoin () , SelectQuery :: innerJoin () , dan SelectQuery :: addJoin () ) tidak dapat terhubung karena metode tersebut tidak mengembalikan SelectQuery
objek, tetapi alias yang sebenarnya digunakan untuk bergabung. Jika Anda menjalankan kode berikut, Anda akan mendapatkan kesalahan.
$query = db_select('digitaliq_flds_by_node', 'a')
->fields('a')
->join('digitaliq_fld_category', 'b', 'a.fld_id = %alias.fld_id AND a.fld_collection_id = %alias.fld_collection_id AND a.fld_group_name = %alias.fld_group_name')
->execute();
String di PHP bukan objek, dan mereka tidak mendefinisikan execute()
metode.
Untuk memverifikasi kode ini menjalankan query SQL yang tepat, dilemparkan $query
ke string, dan cetak. Anda akan mendapatkan kueri SQL yang akan dieksekusi dari kode Anda.
$query = db_select('digitaliq_flds_by_node', 'a')->fields('a');
$alias = $query->join('digitaliq_fld_category', 'b', 'a.fld_id = %alias.fld_id AND a.fld_collection_id = %alias.fld_collection_id AND a.fld_group_name = %alias.fld_group_name');
print $query;
Dengan kode ini, saya mendapatkan output berikut.
SELECT a.*
FROM
{digitaliq_flds_by_node} a
INNER JOIN {digitaliq_fld_category} b ON a.fld_id = b.fld_id AND a.fld_collection_id = b.fld_collection_id AND a.fld_group_name = b.fld_group_name
leftJoin()
tidak mengembalikanSelectQuery
objek. Kode ini memanggilcondition()
sesuatu yang bukan objek.