В настоящее время у меня есть эти два запроса:Как объединить эти два запроса в запросе сравнения
"SELECT company.id, company.name,
contact.firstname, contact.lastname,
contact.email, contact.id AS contactid
from ecampaign_lookup
LEFT JOIN company ON ecampaign_lookup.companyid=company.id
LEFT JOIN contact ON ecampaign_lookup.contactid=contact.id
WHERE ecampaign_lookup.campaignid=".$tid;
И:
"SELECT company.id, company.name,
contact.firstname, contact.lastname,
contact.email, contact.id AS contactid
from ecampaign_lookup
LEFT JOIN company ON ecampaign_lookup.companyid=company.id
LEFT JOIN contact ON contact.companyid=company.id
WHERE ecampaign_lookup.campaignid=".$tid."
AND contact.defaultcontact=1";
Разница заключается в первый запрос возвращает контакты из «ecampaign_lookup» таблицы а вторая возвращает контакты из таблицы «компания». Во втором запросе также есть требование только выбирать контакты, где «contact.defaultcontact = 1», поскольку для каждой компании существует много контактов, но только один контакт для ecampaign_lookup.
В настоящее время я бегу эти два запроса по отдельности, а затем, используя для цикла, чтобы сравнить результаты, которые будут склонны к ошибкам, если один запрос возвращает меньше или больше, чем другие:
for ($x=0;$x<count($query1_result);$x++){
if ($query1_result[$x]['contactid']!=$query2_result[$x]['contactid']){
echo $query1_result[$x]['firstname']." has been replaced by ".
$query2_result[$x]['firstname'];
}
}
Как объединить два запроса вместе, чтобы сравнить ecampaign_lookup.contactid с contact.id во втором запросе и возвращать только те результаты, в которых эти два не совпадают?
Я спросил подобный вопрос http://stackoverflow.com/a/25106708/2244570 немного по-другому , но вы можете понять и использовать его. – dev