代码之家  ›  专栏  ›  技术社区  ›  Austin Hyde

有using(…)错误的sqlite多表内部联接

  •  2
  • Austin Hyde  · 技术社区  · 15 年前

    我正试图在一个sqlite数据库上运行一个查询, INNER JOIN S两个附加表:

    SELECT
        usages.date AS date,
        usages.data AS data,
        stores.number AS store,
        items.name AS item
    FROM usages
    INNER JOIN stores USING (store_id)
    INNER JOIN items USING (item_id)
    

    但是,我得到了错误

    SQL error: cannot join using column item_id - column not present in both tables
    

    我知道我可以用直白的 INNER JOIN stores ON usages.store_id = stores.store_id (这是可行的),但是: 为什么 USING 查询在sqlite中引发错误?

    它不在MySQL上…

    我应该注意:
    这对我来说不是问题,因为我正在使用 ON 语法,但我想知道为什么会发生这种情况。

    1 回复  |  直到 15 年前
        1
  •  3
  •   OMG Ponies    15 年前

    所以你有:

    INNER JOIN items USING (item_id)
    

    …你会得到一个错误,它说:

    SQL错误:无法使用列联接 项目编号 -两个表中都不存在列

    那一定是 最少的 我看到的神秘错误信息。
    我不喜欢的是我不清楚什么是桌子 ITEMS.item_id -是吗? STORES USAGES ?这就是为什么我不 USING NATURAL 连接语法…