Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/11/2014, 14:09
petra12
 
Fecha de Ingreso: enero-2011
Mensajes: 14
Antigüedad: 13 años, 4 meses
Puntos: 0
Consulta múltiple, COUNT(*)

Hola
Acabo de empezar a usar MYysql y tengo unas dudas.. alguien podría ayudarme?
muchas gracias!
Tengo una tabla de authors (ref_author,name), papersinfo (ref_paper e información del artículo) y papersauthors, que relaciona los artículos con los autores.
Tengo que dar los artículos en los que "J_Gray" y"A_Szalay" han trabajado juntos.

He conseguido sacarlo mediante dos consultas:

Código SQL:
Ver original
  1. CREATE VIEW autores_GraySzalay AS
  2. SELECT ref_paper,COUNT(*) AS nauthor FROM papersauthors WHERE ref_author IN (SELECT ref_author FROM authors WHERE name IN ("J_Gray","A_Szalay")) GROUP BY ref_paper;

Código SQL:
Ver original
  1. CREATE VIEW coautores_GraySzalay AS
  2. SELECT title FROM papersinfo WHERE ref_paper IN (SELECT ref_paper FROM autores_GraySzalay
  3. WHERE nauthor ="2");
Código SQL:
Ver original
  1. SELECT * FROM coautores_GraySzalay;

Pero querría unirlas, y lo he hecho así:

Código SQL:
Ver original
  1. SELECT title FROM papersinfo
  2. WHERE ref_paper IN (SELECT ref_paper FROM papersauthors
  3. WHERE nauthor IN (SELECT COUNT(*) AS nauthor FROM papersauthors
  4. WHERE ref_author IN (SELECT ref_author FROM authors WHERE name IN ("J_Gray","A_Szalay"))
  5. GROUP BY ref_paper) AND nauthor=2);

Me da error y no reconoce "nauthor".

Cómo podría arreglarlo?
Veis alguna forma de hacerlo más fácil?

Muchas gracias!!

Última edición por gnzsoloyo; 29/11/2014 a las 14:55