MySQL - vistas en mysql

 
Vista:
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por fifi (10 intervenciones) el 18/11/2019 00:03:39
hola, necesito hacer en mysql la siguiente consulta a la base de datos sobre publicaciones científicas

las tablas son creadas y todo :
authors(ref_author, name)
papersauthors(ref_author, ref_paper)
papersinfo(ref_paper, title, url, ...)
afiliations(ref_afiliation, university, country...)
autoafiliations(ref_author, ref_afiliation)
papersrefences(ref_paper,biblioreference)



/*Los articulos en los que aparecen como coautores \J Gray" y \A Szalay"*/

SELECT ref_author FROM authors WHERE name like 'J_Gray%' or name like 'A_szalay%';
SELECT ref_author, title as articulo FROM papersinfo q INNER JOIN papersauthors p ON q.ref_paper=p.ref_paper AND p.ref_author IN
(SELECT ref_author FROM authors WHERE name LIKE 'J_Gray%' or name LIKE 'A_szalay%' );



y al poner............ 'J_Gray%' AND name like 'A_szalay%'.....
me sale null,
no se si el código esta correcto o no
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 650
Plata
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por joel (231 intervenciones) el 18/11/2019 08:51:23
Si, la consulta a simple vista parece correcta... puede ser que no encuentre ninguna coincidencia?

Le esta diciendo que buscque que el nombre empiece por "J_Gray" o empiece por "A_szalay"... es esto lo que estas buscando?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por fifi (10 intervenciones) el 18/11/2019 09:10:09
Hola, gracias para la respuesta, pero en la pregunta se pone que hay que buscar los artículos donde aparecen los dos coautores : "J_Gray" y "A_szalay" juntos, Y al poner AND en el programa me Salle 'null'
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por Francisco (73 intervenciones) el 18/11/2019 20:03:24
Hola

Las relaciones entre tablas no estan bien establecidas, intenta con esto:


1
2
3
4
5
6
7
8
SELECT a.ref_author, p_i.title as articulo
    FROM papersinfo p_i
       INNER JOIN papersauthors p_a
           ON p_i.ref_paper=p_a.ref_paper
       INNER JOIN authors a
           ON p_a.ref_author = a.refauthor
WHERE
   a.name LIKE 'J_Gray%' OR a.name LIKE 'A_szalay%';

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por fifi (10 intervenciones) el 18/11/2019 21:42:17
hola, el resultado del programa tuyo es lo mismo que el programa mio, me da los artículos de cada uno pero no me da de los dos juntos, por ejemplo:
# ref_author, articulo
'1', 'Transaction processing: concepts and techniques'
'1', 'Notes on data base operating systems'
......................................
'1', 'Scientific data management in the coming decade'
'42', 'Scientific data management in the coming decade'
.....................................................
'1', 'The world-wide telescope'
'42', 'The world-wide telescope'
'1', 'A memory model for scientific algorithms on graphics processors'
'1', 'Parallel database systems: The future of high performance database processing'
'1', 'A straw man analysis of probability of waiting and deadlock'
............................................................
'1', 'Web Technologies-Petascale Computational Systems'
'42', 'Web Technologies-Petascale Computational Systems'


1 es la referencia del primer autor, y 42 del segundo
creo que es ese, no se puede ajuntar los dos a la vez. gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por fifi (10 intervenciones) el 18/11/2019 23:11:58
y si quiero buscar solo

/*Los autores con los que ha colaborado \J Gray" en algún momento*/, que hago
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por Faiza (10 intervenciones) el 18/11/2019 22:10:03
ahora tengo otro problema, necesito seleccionar :
/* El articulo/s mas citado que haya en la base de datos y el numero de citas que ha*/
/*recibido (se contabiliza una cita por cada vez que aparece en la bibliográfica de otro*/
/*articulo de la base de datos)*/

he intentado hacer esto,

1
2
3
4
5
6
SELECT ref_paper as articulos_mas_citados FROM papersreferences
WHERE biblioreference = (SELECT MAX(biblioreference) FROM papersreferences) ;
SELECT COUNT(*) as numeros_citas FROM papersreferences q
INNER JOIN papersinfo p ON q.ref_paper=p.ref_paper
AND p.ref_paper IN (SELECT ref_paper as articulos_mas_citados FROM papersreferences WHERE biblioreference =
(SELECT MAX(biblioreference) FROM papersreferences)) ;

pero no estoy segura del resultado, me salen 4 artículos mas citados y un solo numero de citas???

# articulos_mas_citados
'5'
'17'
'428'
'542'

# numeros_citas
'69'

normalmente tendré 4 numero_citas??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 201
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por Francisco (73 intervenciones) el 19/11/2019 01:38:23
Hola

Lo he cambiado para que busque en cualquier parte de la cadena uno u otro

1
2
3
4
5
6
7
8
SELECT a.ref_author, p_i.title as articulo
    FROM papersinfo p_i
       INNER JOIN papersauthors p_a
           ON p_i.ref_paper=p_a.ref_paper
       INNER JOIN authors a
           ON p_a.ref_author = a.refauthor
WHERE
   a.name LIKE '%J_Gray%' OR a.name LIKE '%A_szalay%';

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en MySQL (en relación al último mes)
Gráfica de MySQL

vistas en mysql

Publicado por fifi (10 intervenciones) el 19/11/2019 02:29:06
*Los autores con los que ha colaborado \J Gray" en algún momento*/, que hago
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar