2017-06-19 55 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,我提出的問題 –

相關問題