Показать сообщение отдельно
  #2 (permalink)  
Старый 22.12.2012, 10:40
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Mateus
Как обледененить 2 запроса mysql в один?
Как минимум тремя способами:

Таблица `basic` - основная (твоя `photo`)
Таблица `user_basic` - пользовательские действия связанные с basic (у тебя вроде бы `like`)

$user_id = (int)$user_id;

1. Самый быстрый.
"SELECT `basic`.`id` FROM `basic`,`user_basic` WHERE `basic`.`id`=`user_basic`.`basic_id` AND `user_basic`.`id`=$user_id"


2. Через подзапрос, более внятно написанное, что и выше, но с подзапросом.
"SELECT `id` FROM `basic` WHERE `id` = (SELECT `basic_id` FROM `user_basic` WHERE `id`=$user_id)"


3. Через склейку(объединение таблиц). Пожалуй самый долгий, но иногда нужен именно этот.
"SELECT `basic`.`id` FROM `basic` LEFT OUTER JOIN `user_basic` ON `basic`.`id`=`user_basic`.`basic_id` WHERE `user_basic`.`id`=$user_id"

JOIN-ами можно ещё пару запросов реализовать, но думаю тебе и этого должно хватить.

ps: Не называй таблицы `like` эдак и рёхнуться можно.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.

Последний раз редактировалось Gozar, 22.12.2012 в 10:53.
Ответить с цитированием