Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Уникальная выборка данных из двух таблиц
 
 автор: mtxd   (27.03.2008 в 17:01)   письмо автору
 
 

Ситуация не на столько простая, как

SELECT `id` FROM `$table1`
UNION
SELECT `id` FROM `$table2`


Следующий вариант также не вариант

$cmd = "SELECT DISTINCT *
             FROM `$table1`,`$table2`
             WHERE `$table1`.`$id` = `$table2`.`$id`
             AND `$table1`.`field` LIKE '%yyy%'
             $order
             $limit;"


Нужно следующее:
есть таблица1 с юзерами 'id', 'name'..., а вторая таблица с комментами, 'id', 'text'...
комментов у одного пользователя может быть сто, а мне надо выборку всех пользователей, которые оставили комменты. теперь получается, если у пользователя 10 комментов, то и в сгенерированном массиве id этого пользователя повторяется 10 раз

Каким образом переписать запрос?

   
 
 автор: ronin80   (27.03.2008 в 17:31)   письмо автору
 
   для: mtxd   (27.03.2008 в 17:01)
 

если предположить что каждый пользователь уникален тогда так

select id, name
from users
where exists
(select id from comments where comments.id=users.id)

здесь соответственно users - таблица с пользователями, comments - таблица с комментариями, которые связаны через id пользователя

   
 
 автор: mtxd   (27.03.2008 в 17:43)   письмо автору
 
   для: ronin80   (27.03.2008 в 17:31)
 

Премного благодарен, такой вариант работает. Правда очень уж "тяжелый" :)
Нет ли менее ресурсоемкой альтернативы, кроме кэширования?

   
 
 автор: ronin80   (27.03.2008 в 22:12)   письмо автору
 
   для: mtxd   (27.03.2008 в 17:43)
 

понятно тяжёлый, потому что отбираются все записи пользователей которые имеют комментарии, надо ограничивать отбираемые данные чтобы не тянуть очень большие объёмы - какие-то дополнительные условия отбора добавлять

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования