Ceci est la requête que j'ai en ce moment:résultats de recherche
SELECT
`groups`.`id`,
`groups`.`name`,
`groups`.`description`,
`groups`.`members`,
`groups`.`image`,
FROM
`groups`
WHERE
`groups`.`name` LIKE '%a%'
OR
`groups`.`description` LIKE '%b%'
Tous les travaux comme prévu, mais je dois une chose supplémentaire pour sélectionner. Le problème est que c'est stocké dans une autre table et je ne suis pas très bon avec les jointures. Voici 2ème structure de la table:
group_members
group_id
,user_id
,status
;
J'ai besoin de sélectionner le statut d'utilisateur spécifié pour le groupe! C'est possible? Comment?
Merci dans le conseil!
Edit:
J'ai besoin pour afficher tous les groupes et le statut de l'utilisateur actuel dans chacun de ces groupes.
Edit # 2:
Disons que user_id
est réglé sur 33
. Il tape aa
comme nom de groupe et dans les résultats il voit tous les groupes qui ont aa
dans son nom. En outre, dans les résultats sont son statut dans chaque groupe.
ID Name Description Status
2 aa2 foobar 3
2 aa1 foobar 1
4 aa3 foobar
6 aa3 foobar
5 aa3 foobar 2
Edit # 3:
Voici presque ce que je dois ...
SELECT `groups`.`id`, `groups`.`name`, `groups`.`description`, `groups`.`members`, `groups`.`image`, `group_members`.`status`
FROM `groups`
LEFT JOIN `group_members`
ON (`group_members`.`group_id` = `groups`.`id`)
WHERE `group_members`.`user_id` = '33'
AND `groups`.`name` LIKE '%%'
OR `groups`.`description` LIKE '%%'
Seul problème, je ne sélectionne pas les groupes où je ne suis pas membre. Intéressant pourquoi ... J'ai utilisé 'left outer' rejoindre.
Oui c'est possible, mais je ne comprends pas ce que vous devez sélectionner assez bien pour l'écrire ... –
On dirait que vous mélangez les choses. Chaque groupe n'a qu'une description et une image, mais de nombreux membres. Qu'est-ce que vous voulez afficher? * Tous * les membres, avec toutes les données par groupe répétées sur chaque ligne? –
Avoir 'group_members'.'user_id' =' 33 'condition dans la clause where va filtrer les résultats qui n'ont pas cet user_id. Si vous voulez tous les groupes où user_id = 33 est membre ou non membre, supprimez cette condition de la clause where. – legendofawesomeness