2010-12-04 2 views
0

Ich versuche, eine SQL-Anweisung für SQLite entlang der folgenden Zeilen zu schreiben, wo ich nur die drei Felder aus dem Feld Aufgaben benötigen:Kann jemand diesen SQL-Syntaxfehler erklären?

select (tasks.id, tasks.title, tasks.comment) from 
tasks inner join contexts_tasks on tasks.id = contexts_tasks.task_id 
where (contexts_tasks.context_id = 0); 

select * kehrt Felder, die ich in einschließlich nicht interessiert bin, aber Bekomme ich nur dieses vage Fehlermeldung, wenn ich versuche, es die Art und Weise zu tun, die ich oben tat

SQL error: near ",": syntax error 

ich bin nicht ganz sicher, was ich falsch mache. Irgendwelche Erklärungen würden geschätzt werden.

+0

Entfernen Sie die Klammern von '(tasks.id, tasks.title, tasks.comment)'? – Ken

Antwort

1

Wie andere bereits gesagt haben, entfernen Sie die Klammern aus den Feldern in der SELECT Klausel. Jemand, der mehr über die inneren Abläufe von SQL weiß, kann sich leicht zurechtfinden/ausarbeiten, aber ich denke, dass der Abfrage-Parser Klammern in Klammern als etwas betrachtet, das ausgewertet werden soll. Beachten Sie zum Beispiel die Klammer um Ihre WHERE-Klausel, die zu einem booleschen Wert führt. Die Spaltennamen selbst bewerten nichts anderes als einen Syntaxfehler. Wenn Sie andererseits einen Sub-SELECT oder anderweitig auswertbaren Ausdruck in Klammern in Ihrer SELECT-Klausel platziert haben, würde es dies analysieren.

4

Sie sollten keine Klammern um die Elemente in Ihrer SELECT-Liste haben. SELECT a, b, c FROM d WHERE e = 1.