Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Объеденить две таблицы избежать дубликатов (Слава) 16/03/2013 - 20:09:26
      Re: Объеденить две таблицы избежать дубликатов (Akina) 16/03/2013 - 22:06:25
      Re: Объеденить две таблицы избежать дубликатов (Слава) 17/03/2013 - 06:19:05

> Original message text:
> 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 запросов в базу.. Да и в смарти что-то разобрать это пока еще не могу правильно..
>


From: Akina - 16/03/2013 - 22:06:25
Subject:Объеденить две таблицы избежать дубликатов
-----------------
Поскольку тут форум по MySQL, а не по связке его и других языков, показывайте не программный код на ПХП, а именно тоот текст запроса, который формируется после всех замен и подстановок. Обязательно для каждого поля добавляйте имя/алиас таблицы, даже если имя поля уникально во всём наборе таблиц. Кроме того, показывайте DDL всех таблиц.


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
42267



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |