2016-12-05 4 views
0

Ich erstelle die folgenden Tabellen.Letzte Spalte der Tabelle verzerrt Abfrageergebnis

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) 
); 

Und alle meine querys arbeiten, außer wenn ich die letzte Spalte jeder Tabelle enthalten, die „Area“, „Fatal“ und „Sex“, so schnell wäre wie ich die meine Count gleich 0 sind , obwohl es nicht sein sollte, da ich es in der .csv-Tabelle sehen kann.

Die Abfrage Ich benutze

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"; 

Und wenn ich die "Area = "Florida"" Teil fallen funktioniert es entsprechend. Ich habe diese Abfragen in meiner Java-App und in der mySQL-Workbench ausprobiert, funktioniert aber nicht. Ich kann einfach nichts falsch mit den Daten sehen. Es gab auch keine Probleme mit dem .csv-Import. Was vermisse ich?

+1

haben Sie versucht, wie mit diesen drei Felder hinzufügen und Bezeichner wie folgt. 'area_time.ourYear = 2016 AND area_time.ourTime = 'Nachmittag'' ' AND area_time.Area =' Florida'' Wenn es nicht funktioniert, können Sie versuchen, die Daten dieser drei Tabellen auszugeben und hier zu kommentieren . – noodlesegg

+0

Versuchte Kennungen vorher, hat offenbar nicht geholfen. [Hier sind die Daten, die ich verwende] (https://mega.nz/#!Hp5XTbTQ!qU1h3wiRqllGo28I_siaiOGv67fbU355fMLMDWjF9e0) –

Antwort

1

PTI Ich habe das versucht und kann Ihren Fehler nicht reproduzieren, haben Sie noch weitere Beispiele?

Hier ist meine Frage:

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'; 

Und die Ergebnisse:

enter image description here

erfreut, dass ein anderer gehen, wenn ich das Problem reproduzieren kann.

Grüße,

James

+0

Zuerst danke, dass du dir die Zeit genommen hast, das auszuprobieren. Kopieren Sie Ihre genaue Abfrage, aber als Ergebnis bekomme ich nichts. [Hier ist ein Bild.] ( –

+1

) Keine Sorge, ich hänge hier ein bisschen herum, aber könnte die Zeichencodierung die Charaktere verändert haben? Wie sehen die 'Florida'-Einträge aus, wenn Sie einfach 'SELECT *' wählen und die Werte manuell finden? Sind sie tatsächlich die gleichen wie Sie denken, wenn sie mit EXACT() 'in Excel oder ähnlichem verglichen werden? –

+0

Ah, jetzt habe ich die EXACT() Funktion noch nicht benutzt, aber wenn ich die Einträge kopiere, ist das Ergebnis nicht 'Florida', wie ich es erwarte, aber es ist 'Florida \ r'. Dasselbe gilt für alle Einträge von "Sex", "Fatal" und "Area" ("Florida \ r", "No \ r", "Male \ r"). Und wenn ich dann die Abfrage für die Suche nach 'Florida \ r' anpassen soll, funktioniert das entsprechend. So Tyvm! Aber warum ist das? –

Verwandte Themen