SELECT Abfrage

Lord_Bender

Neuling
Thread Starter
Mitglied seit
10.02.2006
Beiträge
769
Ort
Dortmund
hallo,

ich arbeite mich gerade in PHP/MYSQL ein. Was ich vorhabe ist eine Hardware Datenbank zu erstellen.

In der Datenbank gibt es einen Rechner der 2 Festplatten hat.

Wenn ich jedoch eine Abfrage starte wird mir der Rechner 2 mal angezeigt bzw nur einmal.

Ich muss ich die Abfrage verändern, das der Rechner nur einmal angezeigt wird, aber mit beiden festplatten.



Abfrage eins (Rechner wird zweimal angezeigt)

SELECT rechnername,mainboard,ram, grafikarte,cpuname,mhz,hersteller,groesse,schnittstelle,geschwindigkeit,ip, mac,betriebsystem,version,virtual FROM pc
INNER JOIN pccpu
ON pc.id = pccpu.pc_id
INNER JOIN cpu
ON pccpu.cpu_id = cpu.id

INNER JOIN pchd
ON pc.id = pchd.pc_id
INNER JOIN hd
ON pchd.hd_id = hd.id

INNER JOIN pcnic
ON pc.id = pcnic.pc_id
INNER JOIN nic
ON pcnic.nic_id = nic.id

INNER JOIN pcos
ON pc.id = pcos.pc_id
INNER JOIN os
ON pcos.os_id = os.id

Abfrage zwei (Rechner wird nur einmal angezeigt)

SELECT rechnername, mainboard, ram, grafikarte, cpuname, mhz, hersteller, groesse, schnittstelle, geschwindigkeit, ip, mac, betriebsystem, version, virtual

FROM pc, pccpu, cpu, pchd, hd, pcnic, nic, pcos, os

WHERE pc.id = pccpu.id
and cpu.id = pccpu.cpu_id

and pc.id = pchd.id
and hd.id = pchd.hd_id

and pc.id = pcnic.id
and nic.id = pcnic.nic_id

and pc.id = pcos.id
and os.id = pcos.os_id
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Eventuell eine Procrdure/Function erstellen, die die Festplatten zurückgibt.
 
Nur durch die Select Abfragen etwas festzustellen ist schwer. (ohne den Normalformen)

Wenn der Rechner in der Detailtabelle 2 Datensätze für die HDD hat dann muss er ja zweimal in dem Select Cursor drin sein.

Ergo muss in deiner zweiten Abfrage etwas anders sein als mit den ganzen INNER JOINS

An deiner Stelle würde ich aber Unterabfragen auf die Detaildatensätze absetzen, Da durch die Anzahl an Kombination aus OS, CPU, HDD... du auch mehrere Male den Rechnernnamen drin haben kannst.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh