Top-Themen

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

Abfrage aus mehreren Tabellen > 2 Spalten Bezug auf eine Spalte

Mitglied: schrecke

schrecke (Level 1) - Jetzt verbinden

24.01.2007, aktualisiert 26.01.2007, 5513 Aufrufe, 29 Kommentare

Hi,

ich will n paar DBs machen, hab aber schon in den Grundlagen Probleme.

Und zwar eine Tabelle "DVDs" (id, title, genre_1_id, genre_2_id) und eine Tabelle "Genres" (id, genre_name).
Nun will ich ne Abfrage machen, das es mir den Titel der DVD aus Tabelle_DVDs anzeigt und dazu 2 Spalten wo das 1. und das 2. Genre drin steht.

Wie mach ich das am Besten?

thx euch
29 Antworten
Mitglied: PCDConny
24.01.2007 um 23:33 Uhr
Naja, das erste Problem wird wohl sein das mit deinen Infos recht wenig anzufangen ist ;)

Welche Datenbank (MySQL, M$SQL, Oracle .......) ?
Welche Programmiersprache (PHP, JAVA, ASP, .NET ......) ?

Vorher könnte man nur die Glaskugel befragen, aber bei dem Wetter schauts da auch ganz trüb aus ;)

Moin moin, Conny
Bitte warten ..
Mitglied: Boy1980HH
25.01.2007 um 00:00 Uhr
Sofern dein Problem darin liegt, überhaupt einen entsprechenden SQL zu formulieren könnte dir schon geholfen werden (unabhängig von den Punkten die PCDConny genannt hat).

Das was du da gerade nennt man Join, bei deinem Problem würde ich einen "Left Outer Join" verwenden

01.
SELECT * FROM DVDs LEFT OUTER JOIN Genres ON (DVDs.genre_1_id = Genres.id OR DVDs.genre_2_id = Genres.id);
Bitte warten ..
Mitglied: djsammy1
25.01.2007 um 01:19 Uhr
-hallo,
ich weiss das ich bei euch hier falsch bin aber ich brauche umbedingt hilfe und weiss nicht an wen ich mich wenden sollte...
brauche umbedingt irgendein programm was alle 10 sekunden áuf dem internet explorer´eine bestimmte seit aktualisiert....
Hillllffffffeeeee

[Edit Biber]
ich weiss das ich bei euch hier falsch bin aber ich...
..aber ich kann ganz gut damit leben?
habe keine ahnung von computern....sorry
Nein, das ist kein Computerproblem... das ist viel grundsätzlicher.
Wenn ich nochmal über so ein Posting stolpere, lass ich es Dich aufessen.
[/Edit]
Bitte warten ..
Mitglied: PCDConny
25.01.2007 um 01:28 Uhr
Und was hat das mit der Datenbankabfrage zu tun ??

Nimm den Firefox mit der Extension => Reload-Every, damit gehts ;)
Bitte warten ..
Mitglied: Maik87
25.01.2007 um 08:52 Uhr
Hör bitte auf, alle Threats damit voll zu spammen!!
Bitte warten ..
Mitglied: Maik87
25.01.2007 um 08:57 Uhr
Ich schätze du arbeitest als Anfänger mit Access und dann mit dem Drag and Drop, ne?
Bitte warten ..
Mitglied: Maik87
25.01.2007 um 08:57 Uhr
Ich schätze du arbeitest als Anfänger mit Access und dann mit dem Drag and Drop, ne?
Bitte warten ..
Mitglied: Maik87
25.01.2007 um 08:58 Uhr
Ich schätze du arbeitest als Anfänger mit Access und dann mit dem Drag and Drop, ne?
Bitte warten ..
Mitglied: schrecke
25.01.2007 um 10:13 Uhr
OT

:D reicht wenn du mir das einmal schreibst :D

falls der mal ne Seite nicht neu läd nach dem abschicken des Posts, lieber erstma nachguggen, ob der nicht doch schon da ist. sowas wie dir ist mir auch schon mal passiert.

OT END

also danke erstmal für eure antworten. Als BD nehm ich MySQL und die Abfrage hatte ich bis jetzt erstmal nur im SQL-Modul von PHPmyAdmin gemacht. Es soll aber später alle mit PHP programmiert werden.

Das mit dem lef outer join werd ich mal versuchen und dann mal guggen ob ich das in php gebastelt bekomme ...
Bitte warten ..
Mitglied: Maik87
25.01.2007 um 10:53 Uhr
o.O *oh schreck*
Was ist denn da passiert? Also nen Spamfilter könnte ja im Forum nicht schaden *fg*

OK, aber SQL liegt noch nicht in meinem Könnensbereich, sry.
Bitte warten ..
Mitglied: schrecke
25.01.2007 um 10:59 Uhr
also hab den code jetzt in pypmyadmin versucht ... klappt ohne Probleme, thx euch.

den php code dafür kann ja phpmyadmin generieren, jetzt muss ich mir nur noch das mit tabellen zurecht bauen, ma guggen ob ich das schaffe.

Frage noch: wenn in einer Zelle nun NULL drin steht gibt das phpmyadmin mit aus. Wird das das php script auch mit ausgeben und wenn ja, kann man das unterbinden? Das das einfach leer bleibt?
Bitte warten ..
Mitglied: Biber
25.01.2007 um 11:16 Uhr
Na ja, nichts gegen LEFT JOINs,
aber in diesem Fall scheint mir ein UNION zielführender...
01.
Select DVDs.id, Dvds.title, "1" as Genre_id, Genres.genre_name  from DVDs, Genres 
02.
     where DVDs.id = genre_1_id 
03.
union     
04.
Select DVDs.id, Dvds.title, "2" as Genre_id, Genres.genre_name  from DVDs, Genres 
05.
     where DVDs.id = genre_2_id 
HTH
Biber
Bitte warten ..
Mitglied: schrecke
25.01.2007 um 18:40 Uhr
warum?
Bitte warten ..
Mitglied: Biber
25.01.2007 um 19:33 Uhr
Weil Du damit nur Sätze bekommst, in denen weder DVDs.id's noch die genre_xx_id's NULL sind.
Und weil ich einen "LEFT OUTER JOIN ... ON (..... OR ....)" nicht für performant halte.
Zumindest in der Theorie... klappt es nicht?

Gruß
Biber
Bitte warten ..
Mitglied: Boy1980HH
25.01.2007 um 22:37 Uhr
Prinzipiell würde ich auch zu einem Union tendieren, aber dabei (wie du schon sagtest) werden alle Sätze rausgefilter wo das entsprechende ID Feld nicht gefüllt ist. Was damit natürlich auch dazu führt, dass bestimmte DVD's einfach nicht mehr gefunden werden.

Wenn das Ergebniss eher den Charakter eines SUchergebniss trägt, dann natürlich ganz klar den Union. Wenn aber das Ergebnis eine Übersicht (innerhalb eines Adminbereichs z.B.) genutzt werden sollte, den doch lieber den Outer Join da man dann auch die unvollständig/ fehlerhaft gepflegten Datensätze angezeigt bekommt.

Ein riesen Unterschied von der Performanceunterschied, sofern man davon bei MySQL überhaupt von Performace sprechen kann (vor allem wenn diese bei einem Webhostingserver liegen),sollte es eigentlich nicht geben. Zumindestens meine Test in diesem Bereich (gefühlte Ergebnisse ) bringen zumindest keine riesigen Unterschiede hervor....

Gruss, Maik
Bitte warten ..
Mitglied: Biber
26.01.2007 um 09:13 Uhr
@Boy1980HH

FULL ACK.
Es kommt natürlich darauf an, was eigentlich das Ziel der Abfrage sein soll.
Wenn eine "Liste aller DVDs" das Ziel ist ---> klar, dann LEFT OUTER JOIN.
Egal, ob ein "Genre" eingegeben ist oder nicht.

Wenn das Ziel eine nach Genre sortierte Liste/Auswertung ist, dann würde in der Regel nicht gewollt/erwartet werden, dass diese Liste mit Datensätzen mit einem <NULL>-Genre beginnt. Dann also UNION.

Gruß
Biber
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel externen Bezug
Frage von MyBRis4ShotMicrosoft Office1 Kommentar

Hallo Zusammen, Kunde hat ein Excel-Dokument mit externen Bezug(Verknüpfung) erstellt. Diese Verknüpfungen führen zu anderen Excel-Dokumenten. Sie möchte sowohl ...

Microsoft Office

Suchen mit 2 Werten (x,y) in einer Tabell - Bereich.vergleich gibt nur Wahr oder Falsch aus

gelöst Frage von ArafatMicrosoft Office2 Kommentare

Hallo Zusammen, ich suche in einem 2. Tabellenbatt nach über 2 Werte x und y nach einem 3. Wert. ...

Ubuntu

Apache 2 startet nicht mehr

gelöst Frage von Hector-UserUbuntu2 Kommentare

Eingabe: /etc/init.d/apache2 start Fehlermeldung: Starting apache2 (via systemctl): apache2.serviceJob for apache2.service failed. See "systemctl status apache2.service" and "journalctl -xe" ...

Microsoft Office

Wenn Feld mit Wert und 2 Felder mit Text dann. Werte mit Bezug aus anderem Tabellenblatt

gelöst Frage von frosch44Microsoft Office4 Kommentare

Guten Tag, ich haben ein Tabellenblatt mit mehreren Datenfeldern. Diese Datenfelder werden mit einem Bezug aus einem zweiten Tabellenblatt ...

Neue Wissensbeiträge
Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 1 TagInternet5 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Windows 10

Netzwerk-Bug in allen Windows 10-Versionen durch Januar 2019-Updates

Information von kgborn vor 1 TagWindows 101 Kommentar

Nur ein kurzer Hinweis für Admins, die Windows 10-Clients im Portfolio haben. Mit den Updates vom 8. Januar 2019 ...

Windows 10

Windows 10 V1809: Rollout ist gestartet - kommt per Windows Update

Information von kgborn vor 2 TagenWindows 102 Kommentare

Eine kurze Information für die Admins, die Windows 10 im Programm haben. Microsoft hat die letzte Baustelle (die Inkompatibilität ...

Sicherheit

Heise Beitrag Passwort-Sammlung mit 773 Millionen Online-Konten im Netz aufgetaucht

Information von Penny.Cilin vor 2 TagenSicherheit6 Kommentare

Auf Heise Online ist folgender Beitrag veröffentlicht worden: Heise Beitrag passwörter geleakt Ich bin mir jetzt nicht ganz sicher, ...

Heiß diskutierte Inhalte
TK-Netze & Geräte
TAPI auf einem Win2016Server installieren und einrichten
Frage von wstabelTK-Netze & Geräte30 Kommentare

Hallo liebe Admins, ich habe folgende Situation: 1 Windows Server 2016 Standard als DC 1 SNOM 710 IP-Telefon 1 ...

Batch & Shell
Mit findstr batch doppelte zeilen einer txt löschen
Frage von Burningx2Batch & Shell25 Kommentare

Hi Vor einer weile habe ich im netzt einen windows shell befehl gefunden mit welchem man über die konsole ...

Verschlüsselung & Zertifikate
Netzwerkfreigabe Verschlüsselung
Frage von grill-itVerschlüsselung & Zertifikate20 Kommentare

Moin zusammen, sicher nutzen hier die ein oder anderen ein Produkt zur Verschlüsselung von Netzwerkfreigaben/-laufwerken auf denen hochsensible Daten ...

Microsoft
Übertragung von MS Volumenlizenzen
Frage von SherlockineMicrosoft20 Kommentare

Ich bin Angestellte in einer kleinen 10-köpfigen IT-Firma, die Netzwerklösungen, Telefonielösungen und Ähnliches anbietet. Im Sommer hatten wir einen ...