Gleiche Feldnamen unterscheiden
Kalle_B
- datenbank
0 Peter0 Cheatah0 King^Lully
Hallöle,
also so was - da arbeite ich jahrelang mit MySQL, aber auf dieses Problem bin ich noch nicht gestossen:
Ich kann Feldnamen nicht unterscheiden, wenn sie in zwei Tabellen gleich sind. Habe mal geschaut, wie phpMyAdmin das macht. Der hat einfach denselben Namen zweimal in der Überschrift.
Hier mein SQL:
SELECT
obj.*
,oar.*
FROM objekte AS obj
LEFT JOIN objektarten AS oar
ON oar.id = obj.objektart_id
WHERE obj.bez_kurz='Helga'
AND obj.loe_kz=0
ORDER BY oar.sortier_nr
Und so was wie echo $row['obj.bezeichnung'].$row['oar.bezeichnung'] geht nicht.
Muss ich jedem einzelnen Feld ein Alias geben?
MfG Kalle
ein von den beiden gleichen datenfeldern kannst du doch auch mit AS verändern
lg
PeterP
ein von den beiden gleichen datenfeldern kannst du doch auch mit AS verändern
Ja, so habe ich es gemacht, hatte aber auf eine kürzere Form gehofft.
SELECT
obj.*
,oar.sortier_nr AS oar_sortier_nr
,oar.bez_kurz AS oar_bez_kurz
,oar.bez_1 AS oar_bez_1
,oar.bez_2 AS oar_bez_2
,oar.bez_3 AS oar_bez_3
,oar.bez_4 AS oar_bez_4
,oar.bez_5 AS oar_bez_5
,oar.bez_6 AS oar_bez_6
,oar.bez_7 AS oar_bez_7
LG Kalle
Hi,
obj.*
,oar.*
Muss ich jedem einzelnen Feld ein Alias geben?
da das Selektieren pauschal aller Spalten nicht praxistauglich ist, Du also eh jede benötigte Spalte angibst, ist das doch kein Problem, oder?
Cheatah
Hier mein SQL:
SELECT
obj.*
,oar.*
Also, das ist ne Schemabfrage.
FROM objekte AS obj
LEFT JOIN objektarten AS oar
ON oar.id = obj.objektart_id
WHERE obj.bez_kurz='Helga'
AND obj.loe_kz=0
ORDER BY oar.sortier_nrUnd so was wie echo $row['obj.bezeichnung'].$row['oar.bezeichnung'] geht nicht.
Muss ich jedem einzelnen Feld ein Alias geben?
Würde funzen, allerdings solltest Du Dich wirklich mal um sinnvolle Varaiblennamen bemühen, unser Vorschlag hier:
<Tabellenname>_<Datenfeldname>
und bei FKs
<Tabellenname>_<FK-Tabellenname>_<Datenfeldname>
(also bspw. "Objekte_Objektarten_ID" statt "objektart_id" oder "Objekte_Kurzbezeichnung" statt "bez_kurz" - Vorteile: DB-weit eindeutige Datenfeldnamen und eine konsistente Namensgebung - Nachteile: längere Variablennamen (kompensierbar durch Einsatz von "QueryTools" mit "Objekt-Explorern" etc.))
Würde funzen, allerdings solltest Du Dich wirklich mal um sinnvolle Varaiblennamen bemühen, unser Vorschlag hier:
<Tabellenname>_<Datenfeldname>
Naja, das kann ich dann ja im aktuellen Fall noch machen:
SELECT
obj.*
,oar.sortier_nr AS oar_sortier_nr
,oar.bez_kurz AS oar_bez_kurz
,oar.bez_1 AS oar_bez_1
,oar.bez_2 AS oar_bez_2
,oar.bez_3 AS oar_bez_3
,oar.bez_4 AS oar_bez_4
,oar.bez_5 AS oar_bez_5
,oar.bez_6 AS oar_bez_6
,oar.bez_7 AS oar_bez_7
und bei FKs
<Tabellenname>_<FK-Tabellenname>_<Datenfeldname>
Was sind FKs?
LG Kalle
Würde funzen, allerdings solltest Du Dich wirklich mal um sinnvolle Varaiblennamen bemühen, unser Vorschlag hier:
<Tabellenname>_<Datenfeldname>Naja, das kann ich dann ja im aktuellen Fall noch machen:
SELECT
obj.*
,oar.sortier_nr AS oar_sortier_nr
,oar.bez_kurz AS oar_bez_kurz
,oar.bez_1 AS oar_bez_1
,oar.bez_2 AS oar_bez_2
,oar.bez_3 AS oar_bez_3
,oar.bez_4 AS oar_bez_4
,oar.bez_5 AS oar_bez_5
,oar.bez_6 AS oar_bez_6
,oar.bez_7 AS oar_bez_7
Ist eine ideologische Frage, viele mögen keine Namen und kommen mit "bze_kurz" (LOL), wir dagegen halten Namen für wichtig.
und bei FKs
<Tabellenname>_<FK-Tabellenname>_<Datenfeldname>Was sind FKs?
Fremd Keys. ;)
Ist eine ideologische Frage, viele mögen keine Namen und kommen mit "bze_kurz" (LOL), wir dagegen halten Namen für wichtig.
Okay. Ich stamme ja noch aus dem letzten Jahrhundert, wo ein Computer nur 12.000 Bytes Speicher (IBM 1401, 1968) und MS-DOS nur 8 Zeichen für einen Dateinamen und nur 8 Bits für ein Byte hatte.
Das steckt ganz tief ...
Kalle