【发布时间】:2018-06-27 01:38:43
【问题描述】:
我正在尝试查询我的数据库并从一个表中返回值,该表具有另外三个表的 Foregin 键,但是当我在同一个查询中使用 INNER JOIN、WHERE 和 AND 时,我什么也没收到。
我的主桌:
CREATE TABLE Matematica (ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE,
Pergunta TEXT NOT NULL,
Alternativas TEXT,
Gabarito TEXT NOT NULL,
Assunto INTEGER NOT NULL REFERENCES Assunto (ID),
Vestibular INTEGER NOT NULL REFERENCES Universidades (ID),
Ano NUMERIC NOT NULL,
Tipo INTEGER NOT NULL,
Imagem TEXT, Previa TEXT NOT NULL,
OBS TEXT,
Fonte TEXT,
qImagem TEXT);
+----+--------+--------------+-------- --+---------+------------+------+------+--------+- ---------+-----+--------+----------+
|身份证 |佩尔贡塔 |替代品 |加巴里托 |阿松托 |前庭 |野 |提示 |图像 |普雷维亚 | OBS |字体 | qImagem |
+----+--------+--------------+-------- --+---------+------------+------+------+--------+- ---------+-----+--------+----------+
| 1 |一些大问题 | a)一个 |一个 | 2 | 1 | 2014 | 0 | 3 |一些大 | | | |
| | | b)B | | | | | | |正文 | | | |
| | | c)C | | | | | | | | | | |
| | | d)D | | | | | | | | | | |
+----+--------+--------------+-------- --+---------+------------+------+------+--------+- ---------+-----+--------+----------+
Assunto 表:
CREATE TABLE Assunto (ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
Assunto TEXT NOT NULL,
Disciplina TEXT NOT NULL);
+----+--------------+------------+
|身份证 |阿松托 |纪律|
+----+--------------+------------+
| 1 | DNA 和 RNA |生物学 |
| 2 |平面几何 |材料 |
| 3 |进化 |生物学 |
| 4 |电阻器协会 |费西卡 |
| 5 |现实主义和自然主义 |文学 |
+----+--------------+------------+
大学表:
CREATE TABLE Universidades (ID INTEGER UNIQUE PRIMARY KEY AUTOINCREMENT NOT NULL,
Vestibular TEXT (50) NOT NULL);
+-----+------------+
|身份证 |前庭 |
+-----+------------+
| 1 | FUVEST |
| 2 |统一营 |
| 3 | VUNESP |
+-----+------------+
我的 SQL 查询:
SELECT Pergunta,
Alternativas,
Gabarito,
Assunto.Assunto AS Assunto,
Universidades.Vestibular AS Vestibular,
Ano,
Tipo,
Imagem,
Previa,
OBS,
Fonte,
qImagem,
Matematica.ID
FROM Matematica
INNER JOIN Assunto
ON Assunto.ID = Matematica.Assunto
INNER JOIN Universidades
ON Universidades.ID = Matematica.Vestibular
WHERE Ano = 2014
AND Matematica.Vestibular = 'FUVEST'
如果我从 'FUVEST' 更改为 1,则查询返回表中存在的行。
谢谢。
【问题讨论】:
-
也许你的意思是:-
WHERE Ano = 2014 AND Universidades.Vestibular = 'FUVEST' -
@MikeT 工作,谢谢!你能在现场回答,所以我可以认为这个问题已经解决了吗?
标签: sql database sqlite inner-join where-clause