2016-12-05 20 views
0

我正在创建以下表格。表的最后一列扭曲查询结果

CREATE TABLE Person (
Case_Number VARCHAR(50) Primary Key, 
Sex VARCHAR(10) 
); 

CREATE TABLE ourCases (
Case_Number VARCHAR(50) Primary Key, 
Rage VARCHAR(30), 
Activity VARCHAR(30), 
Fatal VARCHAR(10) 
); 

CREATE TABLE Area_Time (
Case_Number VARCHAR(50) Primary Key, 
ourYear int, 
ourTime VARCHAR(20), 
Area VARCHAR(50) 
); 

和我所有的querys工作,除了当我一旦包括每个表的最后一栏,这将是“区域”,“致命”和“性别”,我包括我的那些数等于0 ,尽管它不应该是因为我可以在.csv表格中看到它。

查询我使用

SELECT 
COUNT(*) 
FROM 
area_time, 
ourcases, 
person 
WHERE 
area_time.Case_Number = ourcases.Case_Number 
AND 
area_time.Case_Number = person.Case_Number 
AND 
person.Case_Number = ourcases.Case_Number 
AND 
ourYear = 2016 
AND 
ourTime = "Afternoon" 
AND 
Area = "Florida"; 

当我把“面积=‘佛罗里达’,”部分它的工作原理相应。 我在我的Java应用程序和mySQL工作台中尝试了这些查询,但都无效。我根本看不出数据有什么问题。 .csv导入也没有问题。我错过了什么?

+1

你尝试添加和标识符与类似如下这三个领域。 'area_time.ourYear = 2016 AND area_time.ourTime ='Afternoon'' 'AND area_time.Area ='Florida'' 如果它不起作用,您可以尝试转储这三张表的数据并在此处发表评论。 – noodlesegg

+0

之前试过标识符,显然没有帮助。 [这里是我使用的数据](https://mega.nz/#!Hp5XTbTQ!qU1h3wiRqllGo28I_siaiOGv67fbU355fMLMDWjF9e0) –

回答

1

PTI我试过这个,不能重现你的错误,你有没有更多的例子?

这里是我的查询:

SELECT 
    area_time.Area, 
    ourcases.Fatal, 
    person.Sex 
FROM 
    area_time, 
    ourcases, 
    person 
WHERE 
    area_time.Case_Number = ourcases.Case_Number 
     AND area_time.Case_Number = person.Case_Number 
     AND person.Case_Number = ourcases.Case_Number 
     AND ourYear = 2016 
     AND ourTime = 'Afternoon' 
     AND Area = 'Florida'; 

而且结果:

enter image description here

高兴能有另一个去,如果我能够重现问题。

问候,

詹姆斯

+0

首先感谢您花时间尝试一下。复制了您的确切查询,但结果我什么都没有。 [这是一个picutre。](http://imgur.com/a/5eQMR) –

+1

不用担心,我在这里抓住了一些吸管,但字符编码已经改变了字符?如果你只是'SELECT *'并且手工找到这些值,'Florida'条目是什么样的?它们是否与你在Excel或类似软件中使用EXACT()进行比较时的想法相同? –

+0

啊,现在我还没有使用EXACT()函数,但是当我复制条目的结果不是'佛罗里达',因为我期望它是,但它是'佛罗里达\ r'。它对于“性别”,“致命”和“区域”('Florida \ r','No \ r','Male \ r')的相应条目也是如此。如果我调整查询来搜索“佛罗里达州\ r”,它会按照顺序运行。所以tyvm!但为什么呢? –