0

i am not sure whats the problem with mysql statement. The error says " IN is not valid at this position , expecting : EOF, ';'

Here is my sql statement:

 CREATE VIEW collab AS
 SELECT a.author_name AS Author, ca.no0fCollab
 FROM (SELECT * FROM author) as a, (SELECT * FROM coauthors) as ca
     WHERE a.author_id = ca.author_id
 AND a.author_id IN (
  SELECT UA.author_id
  FROM uniq_authored UA JOING publication p 
  ON P.pubid = UA.pubid
  WHERE (p.pubkey LIKE 'journals/%' OR p.pubkey LIKE 'conf/%')
  AND p.title LIKE '%data%'
  );
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
Puteri
  • 71
  • 3
  • 10

1 Answers1

0

You can't use FROM( subquery) in view
but you don't need ....you could refactor your query using join and avoiding subquery

  CREATE VIEW collab AS
  select a.author_name Author, ca.no0fCollab
  FROM author a
  INNER JOIN coauthors ca ON a.author_id = ca.author_id
  INNER JOIN uniq_authored ua ON a.author_id = ua.author_id
  INNER JOIN publication p ON P.pubid = ua.pubid 
    AND (p.pubkey LIKE 'journals/%' OR p.pubkey LIKE 'conf/%')
      AND p.title LIKE '%data%'
ScaisEdge
  • 131,976
  • 10
  • 91
  • 107