SQlite错误:使用join时没有这样的表
我用第三个多对多关系将两个表连接在一起。我正在尝试选择,但SQLite(版本3.11.0)一直告诉我,我的其中一个不存在,这是不正确的!我不知道我做错了什么 这是我的桌子:SQlite错误:使用join时没有这样的表,sqlite,Sqlite,我用第三个多对多关系将两个表连接在一起。我正在尝试选择,但SQLite(版本3.11.0)一直告诉我,我的其中一个不存在,这是不正确的!我不知道我做错了什么 这是我的桌子: DROP TABLE IF EXISTS traits; CREATE TABLE traits( trait_id INTEGER UNIQUE NOT NULL CHECK(TYPEOF(trait_id) = 'integer'), name VARCHAR UNIQUE NOT
DROP TABLE IF EXISTS traits;
CREATE TABLE traits(
trait_id INTEGER UNIQUE NOT NULL CHECK(TYPEOF(trait_id) = 'integer'),
name VARCHAR UNIQUE NOT NULL CHECK(TYPEOF(name) = 'text'),
uri VARCHAR UNIQUE NOT NULL CHECK(TYPEOF(uri) = 'text'),
PRIMARY KEY (trait_id)
);
DROP TABLE IF EXISTS trait_categories;
CREATE TABLE trait_categories(
trait_category_id INTEGER UNIQUE NOT NULL CHECK(TYPEOF(trait_category_id) = 'integer'),
efo_id VARCHAR UNIQUE NOT NULL CHECK(TYPEOF(efo_id) = 'text'),
name VARCHAR UNIQUE NOT NULL CHECK(TYPEOF(name) = 'text'),
uri VARCHAR UNIQUE NOT NULL CHECK(TYPEOF(uri) = 'text'),
PRIMARY KEY (trait_category_id)
);
DROP TABLE IF EXISTS trait_categories_traits;
CREATE TABLE trait_categories_traits(
trait_category_id INTEGER NOT NULL CHECK(TYPEOF(trait_category_id) = 'integer'),
trait_id INTEGER NOT NULL CHECK(TYPEOF(trait_id) = 'integer'),
FOREIGN KEY (trait_category_id) REFERENCES trait_categories(trait_category_id),
FOREIGN KEY (trait_id) REFERENCES traits(trait_id)
);
以下是我的选择失败:
SELECT trait_categories.name, traits.name
FROM trait_categories JOIN trait_categories_traits ON trait_categories_traits.trait_category_id = trait_categories.trait_category_id
JOIN traits.trait_id ON trait_categories_traits.trait_id = traits.trait_id;
SQLite说:
sqlite> select trait_id from traits limit 1;
663
sqlite> SELECT trait_categories.name, traits.name
...> FROM trait_categories JOIN trait_categories_traits ON trait_categories_traits.trait_category_id = trait_categories.trait_category_id
...> JOIN traits.trait_id ON trait_categories_traits.trait_id = traits.trait_id;
Error: no such table: traits.trait_id
请提供帮助。JOIN连接两个表,因此它需要两个表名。 但是
traits.trait\u id
不是表名
您似乎想加入traits
表,因此请删除.trait\u id
。(当两列名称相同时,使用会更简单。)
SELECT ...
FROM trait_categories
JOIN trait_categories_traits USING (trait_category_id)
JOIN traits USING (trait_id);