|
MySQL.RU - Webboard
Вернуться
Объеденить две таблицы избежать дубликатов (Слава) 16/03/2013 - 20:09:26
Re: Объеденить две таблицы избежать дубликатов (Akina) 16/03/2013 - 22:06:25
Re: Объеденить две таблицы избежать дубликатов (Слава) 17/03/2013 - 06:19:05
From: Слава - 16/03/2013 - 20:09:26
Subject:Объеденить две таблицы избежать дубликатов
-----------------
Привет есть такой запрос к таблице клиентов
$client = $model->query("
SELECT c.id, uname, mail, text, session_name, date, color
FROM client AS c
LEFT JOIN client_session AS cs ON cs.id=c.session
LEFT JOIN session AS s ON cs.session=s.id
WHERE manager=".$this->getUser()->getId()."
ORDER BY $order
LIMIT $strok,$limit
")->fetchAll();
$this->view->assign('client', $client);
Все отлично работае и отправляется в смарти. Та мразбирается и выводится.
Но вот понадобилось прикрутить таблицу с интересами клиента по городам.
CREATE TABLE `client_interes` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`client` int(11) DEFAULT NULL,
`country` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
)
Был создана таблица с индексами городов и ай ди клиента. Как мне ее прикрутить сюда что бы можно было в массиве получить все индексы городов, но приэтом на выводе не дублировались клиенты?
Если я делаю просто LEFTJOIN client_interes ON ...
У меня клиент у которого 2 города в таблице client_interes дублируется.. а если 3 города то "разтраивается"
Помогите решить проблему. Пробовал другой вариант, с еще запросом
foreach ($client as $v) {
$city = $model->query("
SELECT client, name
FROM client_interes AS ci
LEFT JOIN ra_country AS rc ON rc.id=ci.country
LEFT JOIN wa_country AS wc ON wc.isonumeric=rc.wa_country AND wc.locale='".$this->getUser()->getLocale()."'
WHERE client = ".$v[id].")
")->fetchAll();
$this->view->assign('city', $city);
}
Города выводятся, но мне кажется так нельзя делать... foreach по каждому клиенту это запрос в базу.. и если клиентов в списке 100 это 100 запросов в базу.. Да и в смарти что-то разобрать это пока еще не могу правильно..
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
42267
|
|