2017-06-19 76 views
1

如果我使用下面的查询。WHERE子句不返回任何行

SELECT a1.unit_name, a1.attack_name, att.unit_name, att.attack_name 
FROM Army_1 a1, Attacks att 

我得到这些数据。

Arkanaut Company, Aethermatic Volley Gun, Arkanaut Company, Privateer Pistol 

Arkanaut Company, Aethermatic Volley Gun, Arkanaut Company, Aethermatic Volley Gun 

但是在a1.unit_name = att.unit_name中使用WHERE子句。我没有行。 有什么明显的我失踪了?

编辑:

表中插入

CREATE TABLE Army_1 (
    ID   INTEGER PRIMARY KEY, 
    Unit_Name VARCHAR, 
    Attack_Name VARCHAR, 
    Quantity INT 
); 

CREATE TABLE Attacks (
    Unit_Name   REFERENCES Models (Unit_Name), 
    Attack_Name VARCHAR, 
    Attack_Type VARCHAR, 
    Attacks  INTEGER, 
    To_Hit  INTEGER, 
    To_Wound INTEGER, 
    Rend  INTEGER, 
    Damage  INTEGER 
); 
+0

这听起来像你只是想做一个'加入'。 – CollinD

+0

嗨CollinD,仍然返回0行? –

+1

声音像空格或不兼容的字符编码。 – Julian

回答

1

感谢xQbert,我需要使用TRIM()对我的WHERE子句。这解决了这个问题。

+1

15年以上(提取变换和加载)数据质量始终是可疑的,当它看起来应该匹配时:P – xQbert

+2

净化数据或加入系统管理的密钥而不是用户定义的输入。 – xQbert

+0

感谢xQbert,我现在正在重新设计用户定义的输入。 :) –

2

好像你可能想要做一个JOIN。

试试这个:

SELECT a1.unit_name, a1.attack_name, att.unit_name, att.attack_name 
FROM Army_1 a1 
INNER JOIN Attacks att ON a1.unit_name = att.unit_name 
+0

嗨,杰夫,谢谢,但仍然返回0行。你假设任何PK或FK的?我真的无法理解这一点1. –

+0

你能否确认两个表中有一些重叠的单元名称? –

+0

是Arkanaut公司是1,我提出的问题 –

相关问题