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

Frage Entwicklung Datenbanken

N zu m Datenbankabfrage und keine Ahnung wie ich Abfragen soll

Mitglied: andste72

andste72 (Level 1) - Jetzt verbinden

03.04.2013 um 13:06 Uhr, 1417 Aufrufe, 6 Kommentare

Ich habe folgendes Problem:

Tabelle 1

Rezepte
id
name

Tabelle 2

Zutaten
id
name


Tabelle 3
rezept_zutat
rid - RezeptID
zid = ZutatID

Bei der Anlage des Rezeptes füge ich für jede Zutat eine Zeile in der Tabelle 3 ein (z.B. rid 1 für Kuchen und zid 1 - Zucker, rid 1 und zid 2 für Mehl)

Ich möchte jetzt, dass er mir z.B. Rezept 1 - Kuchen mit all seinen Zutaten anzeigt. Er soll mir aber auch alle Zutaten anzeigen, die nicht zugewiesen sind, weil ich ja vielleicht später der Meinung bin, es könnte noch Schokolade dazu.

Mein Problem ist, dass ich keine Ahnung habe, wie ich die Abfrage angehen soll.

Kann mir jemand helfen?

Danke
Mitglied: Grinskeks
03.04.2013 um 13:22 Uhr
Hallo,

gehen wir mal davon aus, das Rezept hat die ID 5 könnte die Abfrage in etwa so aussehen:

Select Zutat.name as Zutat, case when rid = 5 then 1 else 0 end as Zugewiesen,
Rezepte.Name as Rezept
from Zutaten left join rezept_zutat on
Zutaten.id = rezept_zutat.zid
left join Rezepte
on rezept_zutat.rid = Rezept.id

where rezept_zutat.rid = 5


/*
Zeige alle möglichen Zutaten zu einem Rezept 5 an und markiere die verwendeten Zutaten als zugewiesen.
Zeige zusätzlich den Namen des Rezeptes an.

*/


Gruss Grinskeks
Bitte warten ..
Mitglied: andste72
03.04.2013 um 15:18 Uhr
Hei Ginskeks,

habe jetzt folgendes Werte eingetragen:

Rezept Zutaten Rezept_Zutaten
id name id name rid zid
1 Kuchen 1 Zucker 1 1
2 Schnitzel 2 Mehl 1 2
3 Muffins 3 Wasser 2 5
4 Hefe
5 Schweinefleisch


Ich nehme jetzt Deinen Entwurf und mit der Rezept ID 1. Aus Ausgabe bekomme ich:

Zutat Zugewiesen Rezept
Zucker 1 Kuchen
Mehl 1 Kuchen

und das war es. Jetzt müsste aber noch:

Wasser 0 NULL
Hefe 0 NULL
Schweinefleisch 0 NULL

oder so ähnlich angezeigt werden, damit ich es z.B. auf Hefe 1 Kuchen ändern kann.
Bitte warten ..
Mitglied: andste72
03.04.2013 um 15:30 Uhr
Ich glaub ich habs:

select rz.*, z.name as Zutat, case when rid = 2 then 1 else 0 end as zugewiesen
from rezept_zutaten rz
right join zutaten z on rz.zid = z.id

Vielen Dank für die Hilfe!!
Bitte warten ..
Mitglied: andste72
04.04.2013, aktualisiert um 09:35 Uhr
Hei,
war es doch nicht!!

Würde funktionieren, solange z.B. Zucker nur einem Rezept zugewiesen wäre. Kommt das 2. Rezept dazu, habe ich Zucker auch einmal als zugewiesen und einmal als nicht zugewiesen.
Bitte warten ..
Mitglied: andste72
04.04.2013 um 10:14 Uhr
jetzt aber:

select z.*, ab.*
from zutaten z
left join (select r.*, rz.zid from rezept r left join rezept_zutaten rz ON r.id = rz.rid where r.id = 1) ab ON z.id = ab.zid

Gruß
Bitte warten ..
Mitglied: nxclass
04.04.2013 um 10:17 Uhr
01.
SELECT `Rezepte`.*, `Zutaten`.* 
02.
FROM `Rezept_Zutat` 
03.
  FULL JOIN `Rezepte` ON `Rezepte`.id = `Rezept_Zutat`.rid 
04.
  FULL JOIN `Zutaten` ON `Zutaten`.id = `Rezept_Zutat`.zid 
05.
WHERE 
06.
  `Rezepte`.id IN ( 1, 2 ) 
07.
ORDER BY `Rezepte`.id, Zutaten`.id
... entspricht dies deiner Anforderung ?
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MySQL Abfrage bei m:1 Verbindung
gelöst Frage von IGEL.DanielDatenbanken37 Kommentare

Hallo liebe Community, ich sitze gerade vor einem SQL-"Problem" - Ich möchte eine Abfrage über mehrere Tabellen machen, wobei ...

Datenbanken
Hilfe bei Datenbankabfrage
gelöst Frage von e51bomagDatenbanken11 Kommentare

Hallo liebe Community, hab gerade ein Blackout bzgl. Realisierung einer Abfrage. Folgende Datenbank: noten: nid, loginname, fid, note, type ...

Batch & Shell
Datenbankabfrage Powershell
gelöst Frage von internet2107Batch & Shell3 Kommentare

Ich versuche auf eine Datenbank zuzugreifen, was auch soweit klappt. Jedoch möchte ich gerne alle Tabellen listen, die sich ...

LAN, WAN, Wireless
AP mit Roaming, WPA2-Enterprise und austauschbare(n) Antenne(n)?
Frage von AZadUBIminLAN, WAN, Wireless1 Kommentar

Hallo liebe Leute, ich möchte mich heute mit einer Frage an euch wenden. In meinem Betrieb soll ein neues ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 2 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 3 TagenTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 3 TagenSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 3 TagenSicherheit12 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Firewall
Penetrationstester-Labor - Firewalls
Frage von Oli-nuxFirewall10 Kommentare

Mich würde interessieren warum man beim Einrichten eines Penetrationstester-Labor (VMs) die Firewall der Systeme deaktivieren soll? Hat das nur ...

SAN, NAS, DAS
Wer kennt sich mit QNAP und CISCO aus ?
gelöst Frage von MachelloSAN, NAS, DAS9 Kommentare

Hallo Zusammen hier im Forum, Ich habe ein QNas 451+ und dieses NAS hat zwei GBit Lan Adapter die ...

Netzwerkgrundlagen
IPv6 Inter-VLAN Routing
gelöst Frage von clSchakNetzwerkgrundlagen9 Kommentare

Hi ich befasse mich gerade mit der Implementierung von IPv6 was bisher (in einem VLAN) korrekt funktioniert inkl. DNS ...

Windows Netzwerk
Zugriff auf den Desktop Ordner eines anderen Rechners in der gleichen Domäne
gelöst Frage von JensNomaWindows Netzwerk6 Kommentare

Guten Abend, ich war neulich mit unserem Admin am Tisch gesessen. Er an seinem Notebook angemeldet mit dem Domänen-Admin, ...