Здравствуйте,
У меня есть 2 таблицы,
В первой таблице
lpu_nsi хранятся организации и их подразделения, у них у всех одинаковый номер кода
mo_code
Во второй таблице хранятся люди, номера кода
mo_code организаций куда они обращались и номер подразделение организации в конкретно которое они обращались.
Мне нужно как то узнать список куда обращались люди, а куда нет, за это у меня отвечает переменная
$param
написал вот такой код:
include ("connect.php");
$rez = mysqli_query($db,"SELECT mo_code, nompod, name_short FROM lpu_nsi"); //получаем список всех организаций и их подразделений
while ($nsi = mysqli_fetch_array($rez)){ //начинаем обход каждой записи
$rz = mysqli_query($db, "SELECT COUNT(pa.id) AS nummo FROM patints_attachment pa WHERE pa.mo_code='$nsi[mo_code]' AND pa.nompod='$nsi[nompod]'"); // получаю число людей которые обратились в конкретное подразделение
$count = mysqli_fetch_array($rz);
if($param==1 and $count['nummo'] == 0){
echo "<li role=\"presentation\">$nsi[name_short]</li>"; // вывожу если мне необходимо получить только те организации, куда никто не обращался
}
if($param==2 and $count['nummo'] != 0){
echo "<li>$nsi[name_short]</li>"; // Вывожу если необходимо получить только те организации, куда обращались люди
}
}
Получается я делаю отдельный запрос для каждой записи в первой таблице, мне это решение не нравится и оно очень медленное так как записей в первой таблице 650, а во второй 800 000 и записей во второй таблице может быть еще больше, раза в 2.
Как можно мой код оптимизировать? Хотелось бы это все сделать 1 запросом в бд, а в цикле просто вывести список тех что мне вернуло MySQL, но вот как это сделать?