Делаю вывод из БД.
Хотелось обойтись без второго if, например что-то вроде:
Как это возможно сделать?
UPD
$all_countries = $mysqli->query("SELECT * FROM `onetravel_countries` ORDER BY `id` LIMIT 0, 10");
if ($all_countries) while ($country = $all_countries->fetch_assoc()) {
$amt = $mysqli->query("SELECT COUNT(*) FROM `estate_base` WHERE `country_id` = '$country[descr]' AND `useit` <> '0'"); $amt = $amt->fetch_row();
if ( $amt['0'] > 0 ) { ... }
}
Пусть у нас есть table_1
с колонкой id
, и table_2
с колонкой country_id
. Получим только те записи из table_1
, для которых есть соответствующая запись в таблице table_2
:
SELECT `table_1`.* FROM `table_1` JOIN `table_2`
ON `table_2`.`country_id` = `table_1`.`id`
Если во второй таблице может быть несколько записей для одной из первой, то нужно дополнить запрос так:
SELECT `table_1`.* FROM `table_1` JOIN `table_2`
ON `table_2`.`country_id` = `table_1`.`id`
GROUP BY `table_1`.`id`
Так выведутся записи из первой таблицы без дублирования.
Добавление счётчика записей во второй таблице тоже проблем не представляет:
SELECT `table_1`.*, COUNT(*) as `cnt` FROM `table_1` JOIN `table_2`
ON `table_2`.`country_id` = `table_1`.`id`
GROUP BY `table_1`.`id`
Раздел в руководстве.
SELECT COALESCE(COUNT(t2.*), 0) cnt, t1.id, t1.field1, t1.field2 /* , ... */
FROM table_1 t1
LEFT JOIN table_2 t2 ON t2.country_id = t1.id
GROUP BY t1.id /* , t1.field1, t1.field2, ... */
ORDER BY t1.id LIMIT 0, 10
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах
Поделитесь, пожалуйста, опытом как сделать церковный календарь? Чтобы на каждый день снизу высвечивалась строка с именами святыхСам календарь...