Kalle_B: Gleiche Feldnamen unterscheiden

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

  1. ein von den beiden gleichen datenfeldern kannst du doch auch mit AS verändern

    lg
    PeterP

    1. 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

  2. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. 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_nr

    Und 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.))

    1. 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

      1. 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.   ;)

        1. 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