MySQL-Abfrage / steh am Schlauch…

Dieses Thema im Forum "Datenbanksysteme für das Web" wurde erstellt von miss.moxy, 18.10.2006.

  1. miss.moxy

    miss.moxy Thread Starter MacUser Mitglied

    Beiträge:
    6.558
    Zustimmungen:
    624
    MacUser seit:
    15.05.2004
    Hallo potentielle Helfer…

    Vielleicht mag wer mich mal in die richtige Richtung schubsen.
    PHP-Website, SQL-Abfrage. Eigentlich recht simpel.
    Drei Tabellen: Kategorie, Subkategorie, Arbeiten.
    Es gibt ~4 Kategorien, ~8 Subkategorien und X Arbeiten.
    Vereinfacht: (primary key, foreign key)

    kat:
    id | name
    sub:
    id | kat_id | name
    arb:
    id | sub_id | name

    Ich hätte gerne folgende Abfrage: alle Arbeits-ids einer Kategorie

    Ich hätte an eine verschachtelte SELECT-Abfrage gedacht, ala
    Code:
    SELECT arb.id from arb where arb.sub_id IN (SELECT sub.id from sub where sub.kat_id = kat.id)
    Aber das (auch in Variationen) will nicht klappen.
    Ich bin mir mit dem IN auch nicht sicher.
    Wie gehört es denn richtig? Weiß das wer?
    Bitte danke :)

    Danke & LG,
    lea


    Hmpf. Eigentlich sollte ich es können ):
     
  2. Azathoth

    Azathoth MacUser Mitglied

    Beiträge:
    475
    Zustimmungen:
    9
    MacUser seit:
    20.09.2004
    kann MySQL überhaupt schon subselects?
    ich denke du musst mit joins arbeiten.

    oder irgendwas in der art:

    SELECT arb.id FROM arb, sub, kat WHERE arb.sub_id = arb.id AND sub.kat_id = sub.id

    ...keine garantie, hab das jetzt nur schnell runter getippt ohne groß nachzudenken, kann sein das ein logik fehler drin ist.
     
  3. miss.moxy

    miss.moxy Thread Starter MacUser Mitglied

    Beiträge:
    6.558
    Zustimmungen:
    624
    MacUser seit:
    15.05.2004
    Oh daran hab ich garnicht gedacht, in der FH haben wir mit SQL gearbeitet...
    Ok, werd mich mal mit Joins auseinandersetzen.
    Danke für die Antwort! :)
     
  4. Badener

    Badener Gast

    Schreib lieber mal, welche Version von MySQL du installiert hast. Die 4er kann afaik keine Subselects, die 5er schon ;)
     
  5. 2nd

    2nd MacUser Mitglied

    Beiträge:
    8.902
    Zustimmungen:
    242
    MacUser seit:
    25.07.2004
    Ich hatte neulich ein ähnliches Problem, die Voraussetzungen waren sogar die selben wie bei Dir. Bei mir waren es statt "Arbeiten" einzelne Produkte.

    Mein Tip: Kategorie und Subkategorie in einer Tabelle zusammenfassen und die Daten in der 3. Normalform in der DB ablegen:

    table1: Arbeiten
    table2: Kategorien inkl. Subkats.
    table3: Verknüpfung Arbeiten <-> Kategorie

    In diesem Thread steht alles drin: http://www.macuser.de/forum/showthread.php?t=199808

    2nd
     
  6. balufreak

    balufreak MacUser Mitglied

    Beiträge:
    1.560
    Zustimmungen:
    28
    MacUser seit:
    12.10.2003
    Code:
    SELECT a.name 
    FROM   arb AS a
    INNER  JOIN sub AS s ON a.sub_id = s.id
    INNER  JOIN kat AS k ON s.kat_id = k.id
    WHERE  k.name = 'Deine Kat';
    
    Das müsste funktionieren. Habs aber nicht getestet.
     
  7. miss.moxy

    miss.moxy Thread Starter MacUser Mitglied

    Beiträge:
    6.558
    Zustimmungen:
    624
    MacUser seit:
    15.05.2004
    @Badener: ist Version 4 *hmpf*

    @2nd: ok, werde mir mal die Umgestaltung der DB-Struktur überlegen
    wenn das von balufreak nicht klappen sollte…

    @balufreak: ich probiers mal aus…


    DANKE allen!!! :)
     
  8. Badener

    Badener Gast

    Bügel halt die 5er drüber... Gibt es zum Download bei www.mysql.de

    ACHTUNG: unbedingt die Installationsanleitung z.B. unter www.entropy.ch beachten - sonst sind deine existierenden Datenbanken weg!
     
  9. miss.moxy

    miss.moxy Thread Starter MacUser Mitglied

    Beiträge:
    6.558
    Zustimmungen:
    624
    MacUser seit:
    15.05.2004
    balufreaks Abfrage war ein Treffer!

    Danke nochmal!

    *weitertüftel*
     
  10. miss.moxy

    miss.moxy Thread Starter MacUser Mitglied

    Beiträge:
    6.558
    Zustimmungen:
    624
    MacUser seit:
    15.05.2004
    @Badener:
    werd ich bei Gelegenheit mal versuchen - danke!
    Arbeit eh mit einer Art Test-Datenbank, da ist nix wichtiges oben…
     
Die Seite wird geladen...
Ähnliche Themen - MySQL Abfrage steh
  1. max@hismac
    Antworten:
    2
    Aufrufe:
    1.532
    pmau
    27.03.2014
  2. StephanSch
    Antworten:
    4
    Aufrufe:
    1.207
    mr660
    26.02.2009
  3. gma
    Antworten:
    9
    Aufrufe:
    842
  4. gma
    Antworten:
    9
    Aufrufe:
    790
  5. StephanSch
    Antworten:
    7
    Aufrufe:
    666
    wegus
    30.07.2008