【问题标题】:SQL syntax for left join table 'unknown table'左连接表“未知表”的 SQL 语法
【发布时间】:2021-07-11 10:11:01
【问题描述】:

显示所有已售产品的产品 ID、产品名称和销售日期。

SELECT products.prod_id AS Product
products.prod_name AS Product Name
FROM sales JOIN products WHERE sales.date_of_sale = sales.products;

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 2 行的“products.prod_name AS Product Name FROM sales JOIN products WHERE sales.date_of_”附近使用正确的语法

【问题讨论】:

  • 您缺少一个逗号,这是一个错字。您的on 子句也不正确,但这与您提出的问题无关。
  • 您在列别名后漏掉了一个逗号
  • 是否有任何 SQL/PHP 专业人士可以与我一对一交谈,做噩梦...

标签: sql syntax phpmyadmin mysql-error-1064


【解决方案1】:

欢迎来到 S/O。您的查询显然有点不对劲。执行“JOIN”标识左表(第一个列出)和右表(第二个列出)之间的关系。这通常是某种 A.ID = B.ID 相关性。现在,在没有提供您实际的表结构的情况下,我认为您正在寻找的是类似于下面使用缩​​写的“别名”来缩短和简化查询的可读性

select
      s.date_of_sale,
      p.prod_name
   from
      sales s
         join products p
            on s.prod_id = p.prod_id
   order by
      p.prod_name,
      s.date_of_sale desc

请注意,Sales(s 别名)和 Products(p 别名)之间的 JOIN 的猜测上下文基于来自每一方的相应产品 ID。

选择的字段列表正在提取您要检索的列,因此是销售日期和实际产品名称。

对于咧嘴笑,我还对数据进行了排序,因此所有相同的产品都被排序为主要产品,然后对于每个产品,我首先按最近销售的日期排序。只是一个额外的展示你如何应用排序你的结果输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多