[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: общее число записей из четырех таблиц
karm
вСЕМ ПРИВЕТ, КТО НИбудь знает как вывести общее число записей из четырех таблиц?

по типо
mysql_query("SELECT SUM(COUNT(*) FROM table 1 UNION SELECT COUNT(*) FROM table 2 UNION SELECT COUNT(*) FROM table 3 UNION SELECT COUNT(*) FROM table 4 UNION SELECT COUNT(*) FROM table 5)");
так можно?
Invis1ble
select sum(cnt) from (
select count(*) cnt from table1
union
select
count(*) cnt from table2
) u


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Guest
а cnt - что означает? может as cnt?

не получается

 $result = mysql_query("SELECT SUM (cnt) FROM(SELECT COUNT(*) cnt FROM `table1` UNION SELECT COUNT(*) cnt FROM `table2`  UNION SELECT COUNT(*) cnt FROM `table3`  UNION SELECT COUNT(*) cnt FROM `table4`");
if(!$result) {die("Ошибка");}
Kusss
Invis1ble
Спасибо, не знал - прикольно.

karm
AS не обязательно указывать.(хотя я всегда пишу, код читабельнее)
У тебя в коде синтаксическая ошибка. Пиши код как предложили выше, и сразу увидишь что не так
$sql = "
SELECT
SUM (summa)
FROM (
SELECT COUNT(*) AS summa FROM `table1`
UNION
SELECT COUNT(*) AS summa FROM `table2`
UNION
SELECT COUNT(*) AS summa FROM `table3`
UNION
SELECT COUNT(*) AS summa FROM `table4`
) AS u
"
;
$result = mysql_query($sql) OR die( 'Ошибка запроса:'. mysql_error() );
karm
ага, супер класс))
а извиняюсь за глупый вопрос, как это теперь присвоить переменной
через mysql_fetch_row();?

2. И еще, вообще для чего нужно as, практически ? тоесть AS summa - здесь создается переменная или как?
Kusss
Ну как-то так
/*
Вот например связанные таблицы. Нам нужно вытащить два id из каждой таблицы
AS служит для переименования переменных
*/

$array = [];
$sql = "
SELECT
t1.id AS t1_id, t1.name, t1.level,
t2.id AS t2_id
FROM
`table` AS t1
LEFT JOIN
`table2` AS t2 ON t2.user_id = t1.id
"
;
$result = mysql_query($sql) OR die( 'Ошибка запроса:'. mysql_error() );
if (mysql_num_rows($result) > 0){
// Если строк много применяют while
while ($value = mysql_fetch_assoc($result)) {
// 1 Вариант: Записываем ВСЕ данные в массив, с ключами по порядку
// $array[] = $value;

// 2 Вариант: Создаем ассоциативный массив

$array[ $value['t1_id'] ] = [
'name' => $value['name'],
'level' => $value['level'],
't2_id' => $value['t2_id'],
];

}
}

echo '<pre>';
print_r($array);
echo '</pre>';
Если строка на выходе одна, (как в примере с количеством строк) можно сделать просто вот так
$value = mysql_fetch_assoc($result);
echo $value['SUM (summa)'];
chee
SELECT
(SELECT COUNT(*) AS summa FROM `table1`) +
(
SELECT COUNT(*) AS summa FROM `table2`) +
(
SELECT COUNT(*) AS summa FROM `table3`) +
(
SELECT COUNT(*) AS summa FROM `table4`) AS count


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
karm
Kusss, что-то сложноват-то ))

SELECT
t1.id AS t1_id, t1.name, t1.level,

в данном случае t1.id AS t1_id - опять то же название чтоли?
t1.id AS t1_id, t1.name, - а пошло все через запятую если мы одну току присвоили как as - [b]t1.id AS t1_id, t
karm
Цитата (chee @ 24.05.2017 - 14:22)
SELECT
(SELECT COUNT(*) AS summa FROM `table1`) +
(
SELECT COUNT(*) AS summa FROM `table2`) +
(
SELECT COUNT(*) AS summa FROM `table3`) +
(
SELECT COUNT(*) AS summa FROM `table4`) AS count

а как вывести все это в переменную, полегче способом?
sergeiss
Цитата (karm @ 25.05.2017 - 14:38)
а как вывести все это в переменную, полегче способом?

mysql_fetch_assoc() или mysql_fetch_result()

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.