2012-04-10 5 views
0

Я постараюсь установить сцену как можно лучше. * свет свечиОбъединение результатов из MySQL Query

Что я пытаюсь для того чтобы достигнуть вне этого

  1. Поиск image_likes, чтобы увидеть, если пользователь понравились какие-либо изображения, а затем включить их в следующем запросе.
  2. Захватите все изображения из images, которые пользователь загрузил.
  3. Показать оба результата, а также ЗАКАЗАТЬ BY id DESC.

Я ужасно отношусь к MySQL, когда речь заходит о включении разных результатов таблицы, поэтому я надеюсь, что я включил достаточно информации. Дайте мне знать, если вам нужно больше.

Таблица Структуры

image_likes

идентификатор | user_id | image_id

images

идентификатор | uploader_id | Дата

+0

Если у вас есть очень странная структура таблицы, то это должно быть проделано с одной 'joined' запросом: http://en.wikipedia.org/wiki/Join_%28SQL%29 –

+0

Что бы действительно быть полезным это код, который вы уже пробовали, и какой результат был – orourkek

+0

@orourkek Я еще не пробовал, а скорее изучал. И их так много разных типов объединений, я понятия не имел, с чего начать. – Harry

ответ

-1

1:

SELECT * FROM Image_Likes WHERE User_Id = x ORDER BY Id DESC 

2:

SELECT * FROM Images WHERE Uploader_Id = x ORDER BY Id DESC 

3: (все вместе)

SELECT L.*, I.* FROM Image_Likes L LEFT JOIN Images I ON L.Image_id = I.Id WHERE L.User_ID = x ORDER BY I.Id DESC 

Заменить х с ID пользователя

+0

Чтобы уточнить, выбирает ли и ищет все результаты «image_likes» из «изображений»? – Harry

+0

А также, # 1064 - У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «LEFT JOIN Images I ON L.Image_id = I.Id ORDER BY I.Id DESC LIMIT 0, 30 'в строке 1 :( – Harry

+0

Да! берет все результаты из первого бита (любые совпадения по ID из Image_Likes) и пытается СОЕДИНЯТЬ их с соответствующим значением из таблицы изображений (ON l.image_id = I.id) – citizenen

0

вы действительно должны попробовать чтобы получить доступ к JOINs. вы будете постоянно писать плохой код и создавать плохие базы данных для работы, не зная, как их использовать.

SELECT * 
FROM images 
LEFT JOIN image_likes ON image_likes.image_id = images.id 
WHERE image_likes.user_id = $my_id 
OR images.creator_id = $my_id 
ORDER BY images.id DESC 
+0

Код не работает должным образом. Он включает в себя другие народы, если это текущие пользователи загружают. Я буду играть с ним – Harry

+0

@Trendee, если я не ошибаюсь, я считаю, что вы можете добавить предложение AND в ON, чтобы добавить 'image_likes.user_id = $ my_id' – dqhendricks

Смежные вопросы