Есть 4 таблицы, абсолютно одинаковых (Только ессно в колонках разный текст

Помогите собрать запросик, я ваааще не доганяю как сделать(
Спустя 57 минут, 51 секунда (28.07.2008 - 05:43) Alchemist написал(а):
Уважаемый посетитель !
Мы всегда рады оказать нематериальную помощь советом или примером любому нуждающемуся в таковой.
К сожалению, штатный телепат еще не вышел из запоя по случаю дня сисадмина, так что вам придется самому детально объяснить свою проблему вербально или на письме (предпочтительно), включая сюда:
1) описание начального состояния
2) описание желаемого алгоритма работы
3) описание желаемого результата
4) описание реализации алгоритма (можно кусок (только кусок !!!) кода с комментариями)
5) результат работы алгоритма или сообщение об ошибке
6) кусок (только кусок !!!) кода генерирующий ошибку или предположительно ответственный за неправильный результат
Остаемся с совершеннейшим к вам уважением...
Мы всегда рады оказать нематериальную помощь советом или примером любому нуждающемуся в таковой.
К сожалению, штатный телепат еще не вышел из запоя по случаю дня сисадмина, так что вам придется самому детально объяснить свою проблему вербально или на письме (предпочтительно), включая сюда:
1) описание начального состояния
2) описание желаемого алгоритма работы
3) описание желаемого результата
4) описание реализации алгоритма (можно кусок (только кусок !!!) кода с комментариями)
5) результат работы алгоритма или сообщение об ошибке
6) кусок (только кусок !!!) кода генерирующий ошибку или предположительно ответственный за неправильный результат
Остаемся с совершеннейшим к вам уважением...
Спустя 2 часа, 47 минут, 50 секунд (28.07.2008 - 08:30) sergeiss написал(а):
Цитата(Alchemist @ 28.7.2008, 6:43) [snapback]44578[/snapback]
...К сожалению, штатный телепат еще не вышел из запоя по случаю дня сисадмина...
Уже, практически, вышел оттуда

Спустя 2 часа, 5 минут, 36 секунд (28.07.2008 - 10:36) jetistyum написал(а):
Цитата(uMnepaTop @ 28.7.2008, 4:45) [snapback]44577[/snapback]
Хелп ми плз, тупому)
Есть 4 таблицы, абсолютно одинаковых (Только ессно в колонках разный текст
).
Помогите собрать запросик, я ваааще не доганяю как сделать(
Есть 4 таблицы, абсолютно одинаковых (Только ессно в колонках разный текст

Помогите собрать запросик, я ваааще не доганяю как сделать(
Ну да, там примерно должен быть SELECT ..... ну наверное FROM может быть INNER(LEFT|RIGHT|OUTER) JOIN наверняка должно быть WHERE ну и как вариант UNION .... и ещё может быть LIMIT , ORDER BY, GROUP BY... ну ..это в общих чертах ответ на твой вопрос

Спустя 1 час, 5 минут, 1 секунда (28.07.2008 - 11:41) Alchemist написал(а):
Ну если уж на то пошло, то первым шагом должно быть:
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
Спустя 1 день, 26 минут, 49 секунд (29.07.2008 - 12:08) uMnepaTop написал(а):
Цитата(Alchemist @ 28.7.2008, 8:41) [snapback]44597[/snapback]
Ну если уж на то пошло, то первым шагом должно быть:
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
У меня просто "кроном(файлом)" обновляется инфа в БД! И чтобы максиммально быстро обновлялось, пришлось разделить на несколько таблиц.
А с юнионом у меня не получается, уже не первый раз напарываюсь на слияние таблиц) и никогда не получается, т.к примера (Понятного) не видел...
Я прошу только пример с пояснением, что и где, телепаты тут не нужны!
Спустя 5 минут, 9 секунд (29.07.2008 - 12:13) sergeiss написал(а):
Цитата(uMnepaTop @ 29.7.2008, 13:08) [snapback]44676[/snapback]
Цитата(Alchemist @ 28.7.2008, 8:41) [snapback]44597[/snapback]
Ну если уж на то пошло, то первым шагом должно быть:
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
"дать в лоб архитектору базы создавшему 4 таблицы, абсолютно одинаковых"...
У меня просто "кроном(файлом)" обновляется инфа в БД! И чтобы максиммально быстро обновлялось, пришлось разделить на несколько таблиц.
Тогда, наверное, сначала "дать в лоб архитектору"

Спустя 2 минуты, 41 секунда (29.07.2008 - 12:16) uMnepaTop написал(а):
тогда скорость обновления инфы будет ОЧЕНЬ долгая, а мне надо минимум!
Спустя 9 минут, 58 секунд (29.07.2008 - 12:26) sergeiss написал(а):
Почему будет долгая скорость обновления??? Еще даже не было ничего сказано про какой-то определенный алгоритм, а ты уже говоришь, что скорости недостаточно будет.
А вообще, я процитирую Алхемиста, с его милостивого разрешения
Предоставь следующее:
1) описание начального состояния
2) описание желаемого алгоритма работы
3) описание желаемого результата
4) описание реализации алгоритма (можно кусок (только кусок !!!) кода с комментариями)
5) От себя добавлю - какая БД? MySQL?
И тогда можно будет более предметно говорить.
А вообще, я процитирую Алхемиста, с его милостивого разрешения

Предоставь следующее:
1) описание начального состояния
2) описание желаемого алгоритма работы
3) описание желаемого результата
4) описание реализации алгоритма (можно кусок (только кусок !!!) кода с комментариями)
5) От себя добавлю - какая БД? MySQL?
И тогда можно будет более предметно говорить.
Спустя 9 минут, 48 секунд (29.07.2008 - 12:35) Professor написал(а):
Цитата
т.к примера (Понятного) не видел...
Код
SELECT * From `table` WHERE `id`=1
UNION
SELECT * From `table2` WHERE `id`=1
UNION
SELECT * From `table2` WHERE `id`=1
Спустя 25 минут, 27 секунд (29.07.2008 - 13:01) uMnepaTop написал(а):
Цитата(Professor @ 29.7.2008, 9:35) [snapback]44682[/snapback]
Цитата
т.к примера (Понятного) не видел...
Код
SELECT * From `table` WHERE `id`=1
UNION
SELECT * From `table2` WHERE `id`=1
UNION
SELECT * From `table2` WHERE `id`=1
Код
$query = "SELECT * FROM tbl_1 UNION SELECT * FROM tbl_2";
$result = mysql_query($query);
$result = mysql_query($query);
Во, работает! Спасибо Professor, я раньше пробывал, так чета не получалось)
Спустя 2 часа, 1 минута, 57 секунд (29.07.2008 - 15:03) uMnepaTop написал(а):
А как быть с COUNT() ?
Спустя 1 минута, 25 секунд (29.07.2008 - 15:04) uMnepaTop написал(а):
Всякие разные способы перепробывал, не получается.
Вот такой запросик мне надо соеденить:
Вот такой запросик мне надо соеденить:
Код
$count = "SELECT COUNT(tbl_1.id) AS total, SUM(tbl_1.current) AS total1, SUM(tbl_1.max) AS total2 FROM tbl_1";
Спустя 2 часа, 27 минут, 32 секунды (29.07.2008 - 17:32) Alchemist написал(а):
соединяй, кто тебе мешает ?
(запросик1)
UNION
(запросик2)
(запросик1)
UNION
(запросик2)
Спустя 1 час, 18 минут, 51 секунда (29.07.2008 - 18:51) uMnepaTop написал(а):
В том то и дело, не прально)
Он подсчитает таблицу 1, 2 и т.д
И покажет их по отдельности)
Вот как я делал:
Пример:
Покажет:
id = 'n' - current = 'n' - max = 'n'
id = 'n' - current = 'n' - max = 'n'
Вот так 2 строчки и покажет по отдельности подсчитанными.
Если без while(), то покажет естессно только первую строчку)
Он подсчитает таблицу 1, 2 и т.д
И покажет их по отдельности)
Вот как я делал:
Пример:
Код
<?
$count = "SELECT COUNT(tbl_1.id) AS total, SUM(tbl_1.current) AS total1, SUM(tbl_1.max) AS total2 FROM tbl_1
UNION SELECT COUNT(tbl_2.id) AS total, SUM(tbl_2.current) AS total1, SUM(tbl_2.max) AS total2 FROM tbl_2";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
?>
Total: id = <?=$row['total']?> - current = <?=$row['total1']?> - max = <?=$row['total2']?>";
<?
}
?>
$count = "SELECT COUNT(tbl_1.id) AS total, SUM(tbl_1.current) AS total1, SUM(tbl_1.max) AS total2 FROM tbl_1
UNION SELECT COUNT(tbl_2.id) AS total, SUM(tbl_2.current) AS total1, SUM(tbl_2.max) AS total2 FROM tbl_2";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
?>
Total: id = <?=$row['total']?> - current = <?=$row['total1']?> - max = <?=$row['total2']?>";
<?
}
?>
Покажет:
id = 'n' - current = 'n' - max = 'n'
id = 'n' - current = 'n' - max = 'n'
Вот так 2 строчки и покажет по отдельности подсчитанными.
Если без while(), то покажет естессно только первую строчку)
Спустя 3 часа, 36 минут, 26 секунд (29.07.2008 - 22:27) Alchemist написал(а):
Код
SELECT SUM(`total`) AS `total`, SUM(`total1`) AS `total1`, SUM(`total2`) AS `total2`
FROM (
SELECT COUNT(`id`) AS `total`, SUM(`current`) AS `total1`, SUM(`max`) AS `total2`
FROM `tbl_1`
UNION ALL
SELECT COUNT(`id`) AS `total`, SUM(`current`) AS `total1`, SUM(`max`) AS `total2`
FROM `tbl_2`
) AS `tmp`
WHERE 1
FROM (
SELECT COUNT(`id`) AS `total`, SUM(`current`) AS `total1`, SUM(`max`) AS `total2`
FROM `tbl_1`
UNION ALL
SELECT COUNT(`id`) AS `total`, SUM(`current`) AS `total1`, SUM(`max`) AS `total2`
FROM `tbl_2`
) AS `tmp`
WHERE 1
или
Код
SELECT COUNT(`id`) AS `total`, SUM(`current`) AS `total1`, SUM(`max`) AS `total2`
FROM (
SELECT `id`, `current`, `max` FROM `tbl_1` WHERE 1
UNION ALL
SELECT `id`, `current`, `max` FROM `tbl_1` WHERE 1
) AS `tmp`
WHERE 1
FROM (
SELECT `id`, `current`, `max` FROM `tbl_1` WHERE 1
UNION ALL
SELECT `id`, `current`, `max` FROM `tbl_1` WHERE 1
) AS `tmp`
WHERE 1
Выбирай...
Спустя 18 минут, 28 секунд (29.07.2008 - 22:46) uMnepaTop написал(а):
1 вариант Работает) Спасибо!