zend db select Join帮助

问题描述

| 所以我有这段代码
$sql = new Zend_Db_Select($db);
$sql->from(\"j\");
$sql->join(\"k\",\"k.id = j.id\",array());
echo $sql;
结果查询
SELECT `j`.* FROM `j` INNER JOIN `k` ON k.id = j.id
但我不只是想要j。* 我也要k。* 如何为此指定zend_db_select?     

解决方法

        join()的第三个参数是select的“ 2”。您已传递一个空数组。
$sql = new Zend_Db_Select($db);
$sql->from(\'j\');
$sql->join(\'k\',\'k.id = j.id\',array());
echo $sql;
注意:对于此条件
k.id = j.id
,应使用LEFT JOIN(-> joinLeft(...))     ,        您可以在from方法中指定列。
$sql->from(array(\"j\" => \"j\",array(\"j.*\",\"k.*\");
老实说,我不确定,但是Zend文档是这样说的:)     ,        如果你还想要六英镑,我想你应该
$sql->join(\"k\",\"k.id = j.id\");
,不带
array()
作为第三个参数。 据我所知,第三个参数指定要从
k
中选择的列,由于您传递了一个空数组,我猜测您将覆盖默认的
k.*
    ,        您明确地告诉联接,当您向其传递空数组时,您不希望为ѭ9返回任何列。而是使用:
$sql = new Zend_Db_Select($db);
$sql->from(\'j\');
$sql->joinLeft(\'k\',\'k.id = j.id\');
echo $sql;
我认为应该可以产生您想要的。     ,        
$sql=new Zend_Db_Select($db);
$sql->from(\'j\',array(
//here fields you want to get from \'j\' Ex. \'j.id\'
));
$sql->join(\'k\',// here your condition
\'k.id = j.id\',//here the fields you need from \'k\'
array(
//now the array is empty!!You need to specify needed fields.
//Or just remove it.Defaults is \"k.*\"!

));
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...