Select em 2 tabelas
Tenho o seguinte problema, eu preciso dar um select em duas tabelas, ou ter dois selects tanto faz, eu fiz com inner join e com union all mas nao consigo ter o resultado que eu desejo
O problema é o seguinte> Pra saber quantos usuarios eu tenho em cada grupo eu preciso dar um select na membros grupo com o id do grupo, mas eu preciso mostrar apenas os 5 primeiros grupos com mais gente, eu nao tenho na tabela falando grupo 1 tem 50 membros, eu tenho 50 linhas com grupo 1 e id do usuario, como eu transformo isso no que eu quero? a unica forma q eu pensei é criar um campo novo em grupos e colocar la o resultado de rowCount, mas gostaria de saber se é possivel fazer sem, eu ja consigo mostrar quantos usuarios cada grupo tem, eu nao consigo mostrar é em ordem e nao é so dar o asc o problema é na logica provavelmente, mas se for possivel resolver isso com uma unica query ficarei grato
tabela 1
grupos(
id
nome
dono
created
stat
)
tabela 2
membros_grupo(
id
grupo_id
user_id
)
PHP
public function ultimosGrupos($limite){
try {
$query = "SELECT * FROM groups ORDER BY id ASC LIMIT :limite";
$this->Select = $this->Conn->prepare($query);
$this->Select->bindParam(':limite' , $limite, PDO::PARAM_INT);
$this->Select->execute();
if($this->Select->rowCount() > 0){
return $this->Select->fetchAll(PDO::FETCH_ASSOC);
}else{
return FALSE;
}
} catch (PDOException $exc) {
exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR);
}
}
public function users_por_grupo($id){
try {
$query = "SELECT * FROM group_memberships WHERE group_id = :id";
$this->Select = $this->Conn->prepare($query);
$this->Select->bindParam(':id' , $id, PDO::PARAM_INT);
$this->Select->execute();
return $this->Select->rowCount();
} catch (PDOException $exc) {
exibeMensagens("Erro ao consultar. {$exc->getMessage()}", WS_ERROR);
}
}Discussão (0)
Carregando comentários...