# sqlite innerjoin



## Ghorki (12. Dez 2012)

Hallo Leute,

wäre super wenn mir jemand weiterhelfen könnte.
Mein innerjoin gibt mir nur einen Nullwert zurück :shock:


```
SELECT c.comment, c.time
FROM belt b 
INNER JOIN comment c
ON (b.rfid = c.rfid) 
WHERE (b.rfid = 123456789);
```

Datenbanksturktur
belt:
-rfid
-lastRev
-user

comment:
-commentId
-rfid
-comment
-time

Danke für Eure Hilfe,
Ghorki


----------



## Thief (12. Dez 2012)

Existiert denn auch ein entsprechender comment?

So oder so, solltest du keine Joins in SQLite machen. Da geht die Performance derbe in die Knie!


----------



## Ghorki (12. Dez 2012)

Ja es existiert ein entsprechender comment und belt Eintrag mit der gleichen rfid.

Das heißt 2 einzelne querys sind schneller als ein innerjoin?


Ich hab jetzt mal den innerjoin in 2 querys aufgeteilt:

// funktioniert

```
SELECT comment, time
FROM comment
WHERE (rfid= '" + rfid + "')
```

// funktioniert nicht ???:L???:L???:L

```
SELECT user
FROM belt
WHERE (rfid = '" + rfid + "')
```


----------



## Thief (12. Dez 2012)

Ja, sind sie deutlich. Vielleicht mal nach Best Practices für SQLite suchen, da stehen ein paar Tipps dabei.

Hatte mal ein Beispiel, in dem ein Select mit nem Join etwa 10 Sekunden gedauert hat, während zwei Selects weniger als eine Sekunde benötigten.

Zu deinem Problem:
Da kann ich dir gerade nicht helfen. Denk das hat auch weniger mit SQLite zu tun, sondern irgend nem anderen Problem auf deiner Seite....


----------



## Michael... (12. Dez 2012)

Geht's hier um Android? Wenn nicht würde ich Dir die Verwendung von PreparedStatements Nahe legen.
Funktionieren die Selects denn "direkt" (z.B. SQLiteManager) gegen Datenbank?


----------



## Ghorki (12. Dez 2012)

Waaahhhhhh ich glaub es nicht!!
Ich habe den Fehler gefunden..ich dachte die ganze Zeit, es stimmt was mit der Datenbank bzw Query nicht, doch das Problem war einfach nur, dass ich vergessen hab mein Klassenobjekt zu inizialisieren..
Habe keine Exception bekommen, weil ich diese woanders verarbeite.

Danke trotzdem, ich werd mich aufjedenfall noch mit Best Practices für SQLite beschäftigen.


----------

