2017-03-11 3 views
1

Ich habe zwei Tabellen - char_items und items. item_id ist ein allgemeines Feld unter den zwei Tabellen.MySQL Inner Join Abfrage geben Fehler

Ich möchte die item_id von 'char_items' -Tabelle lesen und diese verwenden, um andere Informationen aus der Tabelle 'items' basierend auf dieser item_id zu erhalten. Aber meine Abfrage wird in MySQL als falsch angezeigt. Bitte helfen -

SELECT * FROM `char_items` WHERE char_id=$char_id && isSlotted=1 INNER JOIN `items` ON char_items.item_id=items.item_id 

halte ich die Nachricht bekommen:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INNER JOIN `items` ON char_items.item_id=items.item_id 

LIMIT 0, 30' in Zeile 1

Antwort

0

vor der where-Klausel geschehen Joins benötigen

SELECT * 
    FROM char_items c 
INNER 
    JOIN items i 
    ON c.item_id = i.item_id 
WHERE char_id = $char_id 
    AND isSlotted = 1 
+0

Ich habe versucht, so etwas wie diese - SELECT * FROM 'char_items' INNER JOIN' Elemente 'WHERE char_id = $ char_id && isSlotted = 1 ON char_items.item_id = items.item_id - aber es ist noch ähnliche Fehler geben. Ich bin sehr neu in MySQL, also verstehe ich es überhaupt nicht. –

+0

Die Where-Klausel ist immer noch nicht am richtigen Ort. Auf sollte zuerst kommen. –

+0

Auch ich könnte falsch liegen, aber ich denke && sollte UND sein. –

0

wo sollte nach Join-Klausel wie unten sein.

SELECT * FROM `char_items` INNER JOIN `items` ON char_items.item_id=items.item_id WHERE char_id=$char_id && isSlotted=1; 
+0

Vielen Dank. Ich habe die Antwort nur ein paar Minuten, bevor du gepostet hast :) –