|
|
|
| подскажите пожалуйста, можно ли узнать одним запросом кол. сообщений из 2 таблиц
пример из 2 запросов
SELECT count(*) FROM outbox WHERE outbox_user='".$log."';
и
SELECT count(*) FROM trash WHERE trash_user='".$log."';
пробовал так не получается:
SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';
выводит только одно число
а нужно чтобы вывело 2 числа или массив чисел
или может все же лучше 2 запроса | |
|
|
|
|
|
|
|
для: ivanov_max
(12.08.2009 в 20:35)
| | Зачем одним?
Кстати, Вы не правы - запрос с UNION ALL выдает данные полностью. Хоть это и изврат. | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2009 в 20:37)
| | а как тогда лучше, подскажите
<?php
$dbpriv = new PDO('sqlite:data/privat.db');
$intotals = $dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal= $intotals-> fetchColumn();
print_r($intotal);
|
этот код выводит только цифру 3 (не массив)
хотя в outbox 3 сообщение удовлетворяющие условие, а в trash 1 сообщение | |
|
|
|
|
|
|
|
для: ivanov_max
(12.08.2009 в 21:00)
| | Лучше - независимыми запросами. Это без вариантов.
а еще разок поfetchить? | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2009 в 21:08)
| | да вы правы если еще раз fetchColumn сдела ть то выведет цифру 1, не очень удобно
можно также и так
<?php
$intotals = $dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal = $intotals->fetchAll();
и теперь переменные $intotal[0][0] и $intotal[1][0] будут содержать то что нужно, но так тоже не удобно
|
вы не знаете есть ли в pdo запрос типа
$total = $dbpriv->singleQuery("SELECT count(*) FROM inbox WHERE inbox_user='".$log."';");
это из sqlite2
или querySingle из sqlite3
сразу выводит число сообщений без дополнительных действий | |
|
|
|
|
|
|
|
для: ivanov_max
(12.08.2009 в 21:32)
| | не знаю. | |
|
|
|
|
|
|
|
для: Trianon
(12.08.2009 в 22:10)
| | сделал вот так
<?php
$intotals = $dbpriv->query("SELECT count(*) FROM outbox WHERE outbox_user='".$log."' UNION ALL SELECT count(*) FROM trash WHERE trash_user='".$log."';");
$intotal = $intotals->fetchAll(PDO::FETCH_COLUMN);
$intotal[0] и $intotal[1] дают то что надо
|
| |
|
|
|