Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 5803 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 SQL - Zwei Tabellen zusammenführen (6)

Frage von Memo66 zum Thema Datenbanken ...

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

Frage von winscheil zum Thema Entwicklung ...

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

Frage von Bisy.Right zum Thema Netzwerke ...

Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(6)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Viren und Trojaner

FinFisher: Internetprovider schieben Spitzelopfern Malware unter

(1)

Information von kaiand1 zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows 7
SSD - Win7 Lags (15)

Frage von ph5555 zum Thema Windows 7 ...