Mysql 正在尝试编写一个查询,该查询将显示作者及其出版物,甚至是没有出版物的作者

Mysql 正在尝试编写一个查询,该查询将显示作者及其出版物,甚至是没有出版物的作者,mysql,sql,Mysql,Sql,并获取错误 Msg 102,15级,状态1,第8行 “;”附近的语法不正确 如下更改: SELECT a.auth_name AS 'NAME', p.pub_title AS 'PUBLICATION' FROM publication p LEFT OUTER JOIN author_publication d ON p.pub_id = d.pub_id LEFT OUTER JOIN( SELECT a.auth_name FRO

并获取错误 Msg 102,15级,状态1,第8行 “;”附近的语法不正确

如下更改:

    SELECT a.auth_name AS 'NAME', p.pub_title AS 'PUBLICATION'
    FROM publication p
    LEFT OUTER JOIN author_publication d
    ON p.pub_id = d.pub_id
    LEFT OUTER JOIN(
    SELECT a.auth_name 
    FROM author a,author_publication d
    WHERE a.auth_id = d.auth_id);
    GO


在子查询的最后一个外部联接之后需要一个ON子句。但是,您可能根本不需要子查询。我猜你想要这个:

SELECT a.auth_name AS 'NAME', c.pub_title AS 'PUBLICATION' FROM
(select p.pub_title AS 'PUBLICATION' from
(select * from  publication) as p
left outer join
(select * from author_publication) as d
ON p.pub_id = d.pub_id)as c
left outer join
(SELECT a.auth_name FROM author a) as a 
on ON p.pub_id = c.pub_id

如果不知道您的数据库,就很难确定是否有必要大喊大叫。
SELECT a.auth_name AS 'NAME', c.pub_title AS 'PUBLICATION' FROM
(select p.pub_title AS 'PUBLICATION' from
(select * from  publication) as p
left outer join
(select * from author_publication) as d
ON p.pub_id = d.pub_id)as c
left outer join
(SELECT a.auth_name FROM author a) as a 
on ON p.pub_id = c.pub_id
SELECT a.auth_name AS 'NAME', p.pub_title AS 'PUBLICATION'
FROM publication p
LEFT OUTER JOIN author_publication d
    ON p.pub_id = d.pub_id
LEFT OUTER JOIN author a 
    ON d.auth_id = a.auth_id