Я присоединяюсь к 5 таблицам в vTiger, чтобы получить всю необходимую мне информацию. Однако есть опция, что некоторые столбцы будут пустыми. В этом случае моя инструкция SELECT терпит неудачу, и я не могу получить остальные результаты. Как обойти это, добавив значение «Не существует» по умолчанию, если столбец пуст?инструкция SELECT - игнорировать пустые столбцы - присоединившиеся таблицы
$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
пусто. Любое предложение о том, как получить остальную часть контента и просто откликнуться, что они недоступны?
Используйте левое соединение, если оно не существует. –
Можете ли вы посоветовать, как? – GuitarMan
В vtiger будет много связанных таблиц, где не будет данных. Например, в некоторых случаях, когда у вас нет настраиваемого поля для модуля, суффикс-таблицы scf не будут иметь никаких данных, поэтому внутреннее соединение ничего не вернет. Единственной таблицей, где будут данные, относящиеся к модулю, является 'vtiger_crmentity', поэтому я бы предложил использовать' left join' вместо 'INNER JOIN'. Вы можете сохранить внутреннее соединение с 'vtiger_users' AND' vtiger_crmentity' –