2016-02-03 3 views
1

Здравствуйте, я нанял кодера, чтобы сделать работу большинства моих сайтов. Но я хотел бы иметь возможность сделать некоторые основные вещи, которые я пытался использовать mysql query builder, но все же не могу получить концепцию lol. поэтому его, вероятно, действительно базовый, но у меня есть две таблицы.Mysql query noobie help

$sql = "SELECT distinct count(title) FROM #cookingbooks "; 
$db->setQuery($sql); 
$cooking= $db->loadResult(); 
//var_dump($cooking);die; 


$sql = "SELECT distinct count(title) FROM #historybooks "; 
$db->setQuery($sql); 
$history= $db->loadResult(); 
//var_dump($history);die; 

Теперь либо один из них получит мне количество записей, но это то, где я борюсь. Как я могу сделать один запрос для подсчета записей из обеих таблиц и дать мне общее количество из обеих таблиц? как один, поэтому вместо 12 000 книг для приготовления пищи. и 38 000 для истории. я бы просто получил 50 000 в качестве результата

+0

Что мешает вам добавлять номера в php? – Shadow

+0

Обратите внимание, что DISTINCT здесь нецелесообразно. – Strawberry

+0

'SELECT COUNT (*) FROM (SELECT * FROM table_a UNION ALL SELECT * FROM table_b) n;' – Strawberry

ответ

0

Вы можете это сделать, но для этого вам понадобятся несколько запросов. Это может быть проще, чтобы добавить эти 2 числа вместе в PHP, но здесь вы идете:

select (SELECT count(title) FROM #cookingbooks) 
    + (SELECT count(title) FROM #historybooks) as total_books 

Вы можете пересмотреть Йор структуру базы данных и иметь единую books таблицы с полем типа, где поле типа может определить, есть ли в книге история или приготовление пищи. Или у вас более сложная система тегирования, добавив таблицу tags и tag_of_books, где одна книга может принадлежать нескольким категориям. Например. книга под названием «История кулинарии» может принадлежать обоим категориям.

+0

благодаря теневому эффекту, который отлично работает :) – linuxnoob