PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SOS... hab probleme mit join


Caspar
15.08.2003, 15:15:56
Hallo Fachmänner,

ich habe ein kleines problem bzw. MySQL hat ein problem mit meiner Abfrage, das dämliche ist nur local auf meinem Test-Server macht sie keine prbleme :(

Hier mal die abfrage:

SELECT kat_bez, skat_bez
FROM tbl_subkat AS subk
JOIN tbl_kat AS k ON subk.kat_id = k.kat_id
WHERE subk.skat_id = '1'



local gibt sie richtig zurück die subkategorie und die kategorie, aber im internet gibt sie immer nur zurück:

You have an error in your SQL syntax near 'ON subk.kat_id = k.kat_id
WHERE subk.skat_id = '1' LIMIT 0, 30' at line 3

Hier mal die Tabellenstruktur:
#
# Tabellenstruktur für Tabelle `tbl_kat`
#

CREATE TABLE tbl_kat (
kat_id int(11) NOT NULL auto_increment,
kat_bez char(30) NOT NULL default '',
PRIMARY KEY (kat_id)
) TYPE=MyISAM AUTO_INCREMENT=11 ;

# --------------------------------------------------------

#
# Tabellenstruktur für Tabelle `tbl_subkat`
#

CREATE TABLE tbl_subkat (
skat_id int(11) NOT NULL auto_increment,
kat_id int(11) NOT NULL default '0',
skat_bez char(30) NOT NULL default '',
PRIMARY KEY (skat_id)
) TYPE=MyISAM AUTO_INCREMENT=67 ;



ich verzweifel noch daran :(

hoffentlich kann mir jemand helfen...

Greetz Caspar

Nev
15.08.2003, 17:55:26
Hi Casper

Du hast einen SQL-Fehler drin, ich wundere mich nur warum er am LOCALEN System ned angezeigt wird.

SELECT kat_bez, skat_bez
FROM tbl_subkat AS subk
LEFT JOIN tbl_kat AS k ON (subk.kat_id = k.kat_id)
WHERE subk.skat_id = '1'


Sollte nun gehn.

Caspar
16.08.2003, 00:32:44
JUHUUUUUUUUUU tausend dank es klapt, könnte dich abknutschen *lol*

find ich aber trotzdem was blöd das lokal das nicht angezeigt wird :(
Mein problem is nämlich das ich zwar gerade durch meine Ausbildung SQL lerne aber an einem MS-Sql Server und da ist der syntax ohne die klammern... hmm naja werd ich mir merken :)

Greetz from cologne
und ein extra gruß an Nev weil er mir so cool und so schnell helfen konnte

Euer Caspar

Nev
16.08.2003, 00:37:09
Hi Caspar

der Fehler war ned nur die Klammer, wobei ich mir gar ned sicher bin ob die ned Optional sind.

Der Richtige Fehler war das du das LEFT vor dem Join vergessen hast!!

Es gibt mehrere Arten von Join
Right, Left, Inner

Alle ausfühlich zu beschreiben, wäre jetzt etwas länger.

Caspar
16.08.2003, 00:56:00
Hi Nev,

Ach so... hm bei Ms-SQL kann man bei nem normalen (also inner join) das inner weglassen... left oder right join ja nur wenn die attribute aus der rechten oder linken tabelle die kein verbundsattribunt haben mit reinzuholen...

naja is ja jetzt auch wurscht, die theorie hab ich ja schon im kopf mit SQL nur mit der Syntax vom MySQL fehlts noch ein wenig... und mich hat ein wenig konfus gemacht weil es local geht, vieleicht hab ich local eine neuere Version wo das inner join auch nur noch optional inner angegeben werden muß.

nun ja egal, is eh zu spät um zu denken *g*

Wünsch dir ne gute nacht
und alles gute
Dein CaS