Mysql SELECT语句-忽略空白列-联接表
我在vTiger中加入了5个表,以便获得我需要的所有信息。但是,有一个选项,即某些列将为空。在这种情况下,SELECT语句失败,无法检索其余结果。如果列为空,如何通过添加“不存在”默认值来绕过此问题Mysql SELECT语句-忽略空白列-联接表,mysql,select,null,Mysql,Select,Null,我在vTiger中加入了5个表,以便获得我需要的所有信息。但是,有一个选项,即某些列将为空。在这种情况下,SELECT语句失败,无法检索其余结果。如果列为空,如何通过添加“不存在”默认值来绕过此问题 $results = mysql_query("SELECT vtiger_potentialscf.potentialid, vtiger_potential.potentialname, vtiger_contactdetails.accountid, vti
$results = mysql_query("SELECT
vtiger_potentialscf.potentialid,
vtiger_potential.potentialname,
vtiger_contactdetails.accountid,
vtiger_contactdetails.salutation,
vtiger_contactdetails.firstname,
vtiger_contactdetails.lastname,
vtiger_account.accountname,
vtiger_crmentity.smownerid,
vtiger_crmentity.crmid,
vtiger_crmentity.label,
vtiger_users.id,
vtiger_users.email1
FROM vtiger_potential
INNER JOIN vtiger_potentialscf ON vtiger_potentialscf.potentialid = vtiger_potential.potentialid
INNER JOIN vtiger_crmentity ON vtiger_potential.potentialid = vtiger_crmentity.crmid
INNER JOIN vtiger_users ON vtiger_crmentity.smownerid = vtiger_users.id
INNER JOIN vtiger_contactdetails ON vtiger_potential.related_to = vtiger_contactdetails.accountid
INNER JOIN vtiger_account ON vtiger_account.accountid = vtiger_potential.related_to
WHERE `cf_919` = DATE(NOW())");
while ($row = mysql_fetch_assoc($results)) {
echo $row['email1'] . "<br />";
echo $row['smownerid'] . "<br />";
echo $row['potentialname'] . "<br />";
echo $row['accountid'] . "<br />";
echo $row['salutation'] . "<br />";
echo $row['firstname'] . "<br />";
echo $row['lastname'] . "<br />";
echo $row['accountname'] . "<br />";
在这种情况下,我可以将vtiger_contactdetails设置为空。关于如何获取其余内容并回应这些内容不可用的建议?您可以使用left join。
看一看
感谢Abhik Chakraborty在评论中提供了更好的解释。如果不存在左连接,请使用左连接。您可以建议如何使用左连接吗?在vtiger中,将有许多没有数据的相关表。例如,在某些情况下,当您没有模块的自定义字段时,scf后缀表将没有任何数据,因此执行内部联接将不返回任何内容。唯一存在与模块相关数据的表是vtiger\u crmentity,因此我建议使用左连接而不是内部连接。您可以保持与vtiger_用户和vtiger_客户的内部连接,并感谢您澄清工作原理。有关于为什么另一个不起作用的提示吗?谢谢