У меня было два запроса - один, который выбирает group_id
, зная post_id
, и один, который проверяет, что пользователь находится в этой группе.Я пытался оптимизировать их - сложить их вместе, но теперь выдает ошибку ...
SELECT COUNT(bio_community_group_members.id) AS count
FROM `bio_community_group_members`
JOIN `bio_community_posts`
ON (`bio_community_posts`.`id` = `180`)
WHERE `bio_community_group_members`.`group_id` = 'bio_community_posts.group_id'
AND `bio_community_posts`.`user_id` = '34'
Там написано:
Неизвестный столбец «180» в «в предложении».
Проблема: у меня есть эта запись!
Структура таблицы:
bio_community_posts
:
id
, user_id
, group_id
, - другие вещи;
bio_community_group_members
:
id
, user_id
, group_id
, status
, - другие вещи;
Мне нужно извлечь status
из bio_community_group_members
, если он существует.Это count
было просто потому, что я не знал, как начать строить свой запрос.: (
Спасибо за совет.
Редактировать:
Хм ... теперь это работает ..... но есть идеи, как оптимизироватьэти два запроса и получить тот, который также выбирает status
?
SELECT `group_id`
FROM `bio_community_posts`
WHERE `id` = 180
SELECT COUNT(id) AS count
FROM `bio_community_group_members`
WHERE `group_id` = 41
AND `user_id` = '34'
Edit # 2:
Это то, что я искал:
SELECT `bio_community_group_members`.`status`
FROM `bio_community_group_members`
JOIN `bio_community_posts` ON `bio_community_posts`.`group_id` = `bio_community_group_members`.`group_id`
WHERE `bio_community_group_members`.`group_id` = 41
AND `bio_community_group_members`.`user_id` = '34'
AND `bio_community_posts`.`id` = '180'
GROUP BY `bio_community_group_members`.`status`
Спасибо!:)
Редактировать # 3:
Я думаю, мне нужно что-то вроде этого ...
SELECT `bio_community_group_members`.`status`
FROM `bio_community_group_members`
JOIN `bio_community_posts` ON `bio_community_posts`.`group_id` = `bio_community_group_members.group_id`
WHERE `bio_community_posts`.`id` = '180'
AND `bio_community_posts`.`user_id` = '34'
Но:
[Err] 1054 - Неизвестный столбец 'bio_community_group_members.group_id' в 'предложении'.
Редактировать # 4:
Только что нашел ошибку в запросе.Вот окончательное решение:
SELECT `bio_community_group_members`.`status`
FROM `bio_community_group_members`
JOIN `bio_community_posts` ON `bio_community_posts`.`group_id` = `bio_community_group_members`.`group_id`
WHERE `bio_community_posts`.`id` = '180'
AND `bio_community_posts`.`user_id` = '34'