Avisos
Vaciar todo

[Resuelto] Consulta BD desde Cpanel  

 
EA-QRP Club
 EA-QRP Club
Usuario activo

Necesito sacar un listado de los usuarios que son socios en la web, he tratado de hacer una consulta desde Cpanel con PHPmySQL pero no lo logro.

He visto que la información está en tres tablas _users, _usergroups y _usergroup_map. He hecho un INNER JOIN de las tablas pero no he conseguido el resultado, de momento las he exportado a .csv y trataré de hacerlo en Excel.

No tengo experiencia en SQL. ¿Cual sería la sentancia sql corercta? Necesito nombre de usuario, email y grupo donde este puede ser registered o registered y socios.

Saludos.

Luis Ignacio

 

Contenido solo visible a usuarios registrados

Respondido : 15/03/2021 10:06 pm
Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola,

Primero necesitamos que nos compartas la base de datos de la que nos hablas, necesitamos las tablas de tu base de datos y algunos (no todos) registros de la misma para realizar pruebas, si exportaste tu base de datos a csv puedes compartirnos ese mismo archivo pero elimina los registros, solo deja unos 10 o 15 registros (estos pueden ser falsos, solo es para pruebas). El archivo puedes subirlo via Google Drive o algún otro servicio de terceros.

Adicionalmente, los usuarios que deseas extraer ¿Deben pertenecer al grupo registered o socios o deben pertenecer a ambos? ¿Podrías ser un poco mas claro a qué grupos deben pertenecer los usuarios? Por favor.

Saludos

Respondido : 15/03/2021 10:47 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

EA-QRP Club
 EA-QRP Club
Usuario activo

¡Hola! He encontrado las tablas y los campos que necesito de la base de datos, las tablas son las de la base de datos joomla 2.5

_users

Los campos que necesito son ID name username email

_user_usergroup_map 

Tiene los campos user_id group_id    el valor del user_id es el que tiene la tabla _users en ID

_usergroups

Tiene los campos id y title   el valor de id es el que la tabla anterior tiene en group_id

El resultado que quiero obtener del query debía de ser las columnas:

user username email title

de esta forma puedo saber cada user a que grupo pertenece, un user puede estar en varios grupos, luego con un filtro de Excel puedo buscar por ejemplo los user que son socios.

Actualmente lo he conseguido en Excel con las exportaciones a csv de _users y _user_usergroup_map usando la función buscarv pero quería dejarlo hecho con un query en SQL.

He tratado de hacer 

 

select name, username, email FROM xxx_users
INNER JOIN xxx_user_usergroup_map ON xxx_users.id=xxx_user_usergroup_map.user_id
INNER JOIN xxx_usergroups ON xxx_usergroups.id=xxx_user_usergroup_map.user_id

Pero me da :  MySQL ha devuelto un conjunto de valores vacío (es decir: cero columnas). (La consulta tardó 0.0004 segundos.) , se que algo no estoy haciendo bien pero no lo veo

tabla _users

ID      name  username        email   otra infroamcion como password fechas .......

23      juan     jonh               juan@hotmail.com

25      luis       LUIS              123@gmail.com

33      Antonio   toni              toni@gmail.com

 

Tabla _user_Usergroup_map

user_id      group_id

23              10

25              10

25              11

33              10

 

Tabla _usergroups

id       title

10      registrado

11      socio

12      editor

 

 

Resultado buscado para exportar a .csv :

juan       jonh    juan@hotmail.com  registrado

luis        LUIS    123@gmail.com      registrado

luis        LUIS    123@gmail.com      socio

Antonio  toni      toni@gmail.com      registrado

 

Saludos.

Luis Ignacio

Respondido : 16/03/2021 9:10 pm
EA-QRP Club
 EA-QRP Club
Usuario activo

¡Hola!, me respondo ya que creo que he encontrado una solución:

select xxx_users.name, xxx_users.username, xxx_users.email,
xxx_usergroups.title
from xxx_users inner join xxx_user_usergroup_map
on xxx_users.id = xxx_user_usergroup_map.user_id
INNER JOIN xxx_usergroups
on xxx_user_usergroup_map.group_id = xxx_usergroups.id

 

Con este query he conseguido el resultado que quería.

 

Gracias.

Saludos.

Luis Ignacio

 

Respondido : 16/03/2021 11:17 pm

Cursos Gratuitos WordPress

Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola Luis,

Prueba con la siguiente consulta SQL:

SELECT _users.name, _users.username, _users.email, _usergroups.title
FROM _users, _usergroups, _user_Usergroup_map
WHERE _user_Usergroup_map.user_id = _users.id
AND _user_Usergroup_map.group_id = _usergroups.id
AND ( _user_Usergroup_map.group_id = 10
OR _user_Usergroup_map.group_id = 11);

Saludos 🙂

Esta publicación ha sido modificada el hace 4 años por Bulmaro
Respondido : 16/03/2021 11:18 pm
EA-QRP Club
 EA-QRP Club
Usuario activo

¡Muchas gracias! Esta query también me vale, así sale separado por un lado saca los registrados y a continuación los socios.

Desconocía que en el Where se pudiera hacer AND y OR. ):

Por mi parte está cerrado el post ya que ha sido solucionado.

Saludos.

Luis Ignacio

 

Respondido : 17/03/2021 9:24 pm

Bulmaro
 Bulmaro
Soporte CMS Webempresa Moderator

Hola Luis, 

Excelente, muchas gracias por compartirnos tu solución y me alegra que la nuestra también te fuera de utilidad aunque debo reconocer que la forma indicada de hacerla es mediante el uso de JOINS, tal como lo has realizado tú, la manera en que formulé la consulta SQL fue la manera clásica o sencilla. Por otra parte, claro puedes usar y anidar  operadores lógicos como el AND y OR tantas veces como desees en la cláusula WHERE, incluso puedes definir prioridades utilizando los paréntesis (), tal como lo implementé.

Nos alegra que nuestr@s client@s estén felices con nuestro trabajo.

¿Te importaría dedicarle un minuto a dejarnos una reseña / opinión en Facebook o Google? En la que te vaya mejor.

Facebook:  https://www.webempresa.com/testimonio-facebook
Google:  https://www.webempresa.com/testimonio-google

Nos ayudaría a que otr@s usuarios se decidan por nosotr@s si saben lo que nos dices.

Gracias de parte de todo el equipo del foro. Gracias por consultarnos, por tu preferencia y confianza en Webempresa. 

Saludos 🙂

Esta publicación ha sido modificada el hace 4 años por Bulmaro
Respondido : 17/03/2021 10:06 pm