I had two queries - one that selects group_id by knowing the post_id, and one that checks that user is in that group. I tried to optimize them - put them together, but it now throws an error...
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'
It says:
Unknown column '180' in 'on clause'.
Problem: I have that entry!
Table structure:
bio_community_posts:
id,user_id,group_id,- other stuff;
bio_community_group_members:
id,user_id,group_id,status,- other stuff;
I need to retrieve status from bio_community_group_members if it exists. That count thing was just because I didn't knew how to start to build my query. :(
Thanks in advice.
Edit:
Hmm... now it works..... but any idea how to optimize those two queries and get one that also selects 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:
This is what I was looking for:
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`
Thanks! :)
Edit #3:
I guess that i need something like this...
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'
But:
[Err] 1054 - Unknown column 'bio_community_group_members.group_id' in 'on clause'.
Edit #4:
Just found a bug in the query. Here is the ultimate solution:
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'