Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Rat in SQL-Verknüpfung zwischen zwei Tabellen (keine Anfänger-Frage)

Frage Entwicklung Datenbanken

Mitglied: LuckyLuke

LuckyLuke (Level 1) - Jetzt verbinden

23.09.2008, aktualisiert 25.09.2008, 5800 Aufrufe, 3 Kommentare

Hallo liebe Datenbankanwender!

Infos zu meinem DB-System
phpMyAdmin - 2.11.4, MySQL-Client-Version: 5.0.51a, PHP5.1

Problemstellung
Ich habe eine Datenbankanwendung in PHP geschrieben, in der Produkte verwaltet werden. Soweit alles super.
Wie jeder weiß, enthält jedes Produkt Parameter. Eine Eingabemaske, die ich in PHP geschrieben habe, enthält eine Auflistung von ca. 120 Parametern. Diese sind Kategorisiert und mit Überschriften versehen. Die zugehörige Datenbanktabelle sieht wie folgt aus:

| prd_kategorie | para_id | parameter | header |

In der Eingabemaske wird per Checkbox der jeweilige Parameter dem Produkt zugewiesen und in folgender Verwaltungstabelle unter para_verschieben abgespeichert:

| prdkind_id | para_id | parakat_id | prdzusatzoptionwert | para_verschieben |

Soweit auch so gut.
Damit ich später evtl. Parameter bearbeiten kann, sprich hinzufügen oder entfernen per Checkbox, sind beide Tabellen mit einer WHERE-Bedingung verknüpft:

01.
SELECT PRODVER.prdkind_id, PRODVER.para_id, PRODVER.parakat_id, PRODVER.prdzusatzoptionwert, PRODVER.para_verschieben,  
02.
PARA.para_id, PARA.prd_kategorie, PARA.parameter, PARA.header, KAT.parakat_id 
03.
FROM produkt_verwaltung PRODVER, parakat KAT, parameter PARA 
04.
WHERE PRODVER.parakat_id = KAT.parakat_id 
05.
AND PRODVER.para_id = PARA.para_id 
06.
AND PARA.prd_kategorie = KAT.parakat_id
Und hier kommt auch mein Problem, an dem ich mir etwas die Zähne verbeiße. Die Verknüpfung funktioniert richtig, sprich die Zuweisung stimmt. DOCH: Dem User werden nach Auswahl des Produkts mit vorhandener Auswahl, nur die Parameter angezeigt, die gecheckt sind. Logisch, weil in der Verwaltungstabelle auch nur die IDs der Parameter stehen, die vergeben wurden.
Frage: Wie bekomme ich es hin, dass alle gesamten Parameter aus der Parameter-tabelle und die vergebenen Parameter aus der Verwaltungs-Tabelle (Checkbox wird aktiv gesetzt) angezeigt werden? Ist in diesem Fall eine WHERE-Verknüpfung nicht die richtige?

Über eine Anregung wäre ich euch dankbar.

Gruß, Lucky.
Mitglied: RDiller
23.09.2008 um 11:12 Uhr
Versuchs doch mal mit join, z.B.

FROM (produkt_verwaltung left join PRODVER.parakat_id = KAT.parakat_id ) .......

Gruß

Ralf
Bitte warten ..
Mitglied: LuckyLuke
23.09.2008 um 12:18 Uhr
Hey Ralf!!!!

Du warst der rechte Mann zur rechten Stelle, danke!!!
Mit dem LEFT JOIN ... ON wird mein Problem gelöst. Danke für deine Anregung!!!

Hier für die Lösung:

01.
SELECT PARA.para_id, PARA.prd_kategorie 
02.
FROM dev_parameter PARA 
03.
LEFT JOIN dev_zusatzoption_verwaltung VERW ON PARA.prd_kategorie = VERW.parakat_id 
04.
AND PARA.para_id = VERW.para_id
Gruß, LuckyLuke
Bitte warten ..
Mitglied: LuckyLuke
25.09.2008 um 11:36 Uhr
UPDATE
Eine Macke hat noch mein Skript, dieser Bug bzw. Folge vom LEFT-JOIN ist mir im Nachhinein aufgefallen.

Meine Parameter, die gechecked sind, werden bei einem Produkt, dass neu angelegt wurde, nur mit den Parametern angezeigt, die noch unchecked sind.
Trotz ID-Abfrage des jeweiligen Produktes, ist die Ausgabe immer noch verkehrt.

Ist in diesem Fall ein Sub-Select notwendig?

Gruß, Lucky.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst Schleifen in SQL-Abfrage bei 2 Tabellen (2)

Frage von Aximand zum Thema Datenbanken ...

Entwicklung
gelöst SQL Update aus derselben Tabelle (1)

Frage von winscheil zum Thema Entwicklung ...

Windows Server
gelöst Anfänger Frage zum Thema Migration! (7)

Frage von Stefan007 zum Thema Windows Server ...

Netzwerke
Fragen zum Thema: Firewall Literatur Aufbau Rat (9)

Frage von Bisy.Right zum Thema Netzwerke ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (18)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
gelöst DNS ins mehreren Subnetzen (15)

Frage von joerg zum Thema Windows Netzwerk ...