2016-04-10 12 views
0

Ich habe zwei Tabellen:
1.: Projekte >> p_id, p_name, p_description
2.: Aufgaben >> T_ID, t_project, t_name, t_owner
wo p_id mit t_prject verbunden istCount eindeutige Werte, wenn in mysql verbinden links

Die ich versuche zu tun, ist die Anzahl der Projekte, wo ein Task Owner beteiligt ist, so denke ich, ich muss beide Tabellen beitreten und sie macht den Filter, um eine einzige Anzahl als Anzahl der Projekte jemand zu bekommen ist beteiligt, sah andere Antworten an Ich habe es so gemacht:

SELECT tasks.t_project, COUNT(DISTINCT tasks.t_project) AS result, 
FROM 'tasks' 
LEFT JOIN users ON tasks.t_owner = users.u_id 
WHERE tasks.t_owner=17 
group by 'tasks.t_project' 

Aber mysql geben einen Fehler

# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax; in Zeile 3.

+0

Verwenden Sie keine Anführungszeichen, um Tabellen- oder Spaltennamen zu umgehen. Verwenden Sie Backticks –

+0

@sagi: Bearbeiten Sie nicht den Fehler im Code –

+0

@juergend Bearbeiten Sie nicht die Code-Struktur – sagi

Antwort

0

Sie verwenden das einfache Anführungszeichen ' für den Spalten-/Tabellennamen, das ist falsch und Sie sollten Rückticks verwenden. Im Allgemeinen werden Back-Ticks für reservierte MySQL-Wörter verwendet, das heißt, wenn Sie Ihre Tabelle table oder max oder ein anderes reserviertes Wort aufgerufen haben. Das einfache Zitat ' wird für Strings verwendet, wenn ein Text in Anführungszeichen gesetzt wird, wird er automatisch als String erkannt.

sollte diese Abfrage arbeiten:

SELECT tasks.t_project, COUNT(DISTINCT tasks.t_project) AS result, 
FROM tasks t 
LEFT JOIN users u ON t.t_owner = u.u_id 
WHERE t.t_owner=17 
group by t.t_project 

Da Sie keine reservierten Schlüsselwörter verwendet haben, ich Zecken nicht genutzt zurück, können Sie auch Alias ​​den Tabellen-Namen und dann werden Sie diesen Konflikt nicht haben .

Sie können read this documents that provides all of MySQL reserved keywords.

+0

Dank sagi für Ihre schnelle Antwort, es funktioniert jetzt! – Aldegunde

Verwandte Themen