Sqlite:含糊不清的列名

use*_*402 4 sqlite ambiguous

我是新手,我尝试在我的数据库上这样做

SELECT id FROM import INNER JOIN import b ON a.id-1 = b.id AND b.val = 0 WHERE a.val = -1

Pb:模糊列名:id

我的桌子:

CREATE TABLE "import" (
    "id" INTEGER PRIMARY KEY  NOT NULL ,
    "id_analyse" integer, 
    "cross" varchar,
    "date" datetime,
    "close" double,
    "low" double,
    "high" double,
    "T" integer DEFAULT (NULL) ,
    "B" INTEGER
 )
Run Code Online (Sandbox Code Playgroud)

我无法理解因为我读过

当使用多个表时(例如在JOIN中),可能有两个具有相同名称的列.

我只使用一张桌子!

有人可以帮助我吗?

斯特凡

laa*_*lto 17

只需指定id您要选择的内容,例如

SELECT a.id ....
Run Code Online (Sandbox Code Playgroud)

此外,您的表似乎没有val您稍后在查询中使用的列.


Lar*_*tig 6

您实际上在查询中使用了两个表,而不是一个,尽管它们都从同一个底层物理表中获取数据。这些表被称为ab。在此特定查询中,您是否执行SELECT a.idSELECT b.id因为值始终相同并不重要。但是想象一下你写的ON a.id = b.id + 1——因为无论你是从还是编辑 id 列都会有所不同。SELECTab