【问题标题】:SQL syntax confusion (Natural Join)SQL 语法混淆(自然连接)
【发布时间】:2015-02-09 14:52:05
【问题描述】:

下面是代码

postgres=# SELECT title,name,borrower.address WHERE library_branch NATURAL JOIN
book NATURAL JOIN book_loans NATURAL JOIN borrow WHERE library_branch.branchname
='Sharpstown' AND dateOut='12/10/2014';
ERROR:  syntax error at or near "NATURAL"
LINE 1: ... title,name,borrower.address WHERE library_branch NATURAL JO...
                                                         ^
postgres=#

不知道为什么它会给出错误。我以为我正确地进行了自然连接。有什么建议吗?

【问题讨论】:

  • 是postgressql还是mysql?请使用正确的标签
  • 提示似乎是 psql 命令行客户端而不是 MySQL。您从中选择的表需要使用 FROM 子句而不是 WHERE 子句(对于 Postgres 和 MySQL 来说是这样)。详见手册:postgresql.org/docs/current/static/…
  • --> WHERE
  • 对不起,我正在使用 pgadmin3,也谢谢你 a_horse_with_no_name
  • 自然连接有点危险。将列添加到表后,应用程序可能会停止工作。 (类似于“SELECT *”问题。)

标签: sql postgresql join


【解决方案1】:

你有一个 where 关键字,from 应该放在哪里:

SELECT       title, name, borrower.address 
FROM         library_branch -- There's a WHERE here in the OP
NATURAL JOIN book 
NATURAL JOIN book_loans 
NATURAL JOIN borrow 
WHERE        library_branch.branchname = 'Sharpstown' AND 
             dateOut = '12/10/2014';

【讨论】:

    猜你喜欢
    • 2019-05-19
    • 1970-01-01
    • 2015-04-16
    • 2010-09-30
    • 1970-01-01
    • 2018-08-21
    • 2022-11-04
    • 1970-01-01
    • 2017-03-13
    相关资源
    最近更新 更多