Cita: quiero que la consulta me arroje esto(11 registros)
321, 'g',NULL
319, 'a',NULL
320, 'b'
317, 'c'
318, 'd',NUL
315, 'e'
316, 'f'
322, 'g'
323, 'h'
324, 'i',NULL
325, 'j'
No se entiende para que quieres ese resueltado, puesto que es una lista de los usuarios, con
null si no tienen amigos y
nada sitienen amigos...???
Para obtener eso o algo parecido debes agregar... es decir tu no buscas la lista de "amistades" donde obvimente tendras mas registros que usuarios si tienes usuarios con mas de un amigo... sino una lista de usuarios con información de si tienen o no amigos...
Código MySQL:
Ver original (
);
(id,nombre)
(321, 'g'),
(319, 'a'),
(320, 'b'),
(317, 'c'),
(318, 'd'),
(315, 'e'),
(316, 'f'),
(322, 'g'),
(323, 'h'),
(324, 'i'),
(325, 'j');
(
);
(idusuario,idamigo,estadosolicitud)
(322, 325, 'ACEPTADA'),
(317, 323, 'YES'),
(317, 315, 'YES'),
(315, 320, 'YES'),
(322, 315, 'ACEPTADA'),
(315, 316, 'YES');
Código MySQL:
Ver originalSELECT usuarios.id
,usuarios.nombre
, (usuarios.id=amigos.idusuario)
OR (usuarios.id
=amigos.idamigo
)
Código pre:
Ver originalID NOMBRE AMISTADES
315 e 4
316 f 1
317 c 2
318 d 0
319 a 0
320 b 1
321 g 0
322 g 2
323 h 1
324 i 0
325 j 1
http://sqlfiddle.com/#!2/28563/5/0