SQL Query über mehrere Tabellen?

Hallo,

ich versuch Daten über mehrere Tabellen aus einer MariaDB mit einem einzelnen SELECT zu lesen.

Als Beispiel dient die MySQL Beispieldatenbank Sakila:
https://dev.mysql.com/doc/sakila/en/

Aus der Datenbank möchte ich Filme laden. Sie sind in der Tabelle "film" gespeichert und haben den Primärschlüssel "film_id".

In dem Select möchte ich auch gleich die Kategorien aus der Tabelle "category" einbeziehen.

Die Verknüpfung zwischen Film und Kategorie funktioniert über die Tabelle "film_category". Es gibt für jeden Film nur eine Kategorie!

Für einfache Beziehungen zu anderen Tabellen bekomme ich das so hin:

SELECT
   f.film_id,
   f.title,
   ft.title as text_title,
   f.description,
   ft.description as text_description,
   f.release_year,
   f.language_id,
   l1.name as language_name,
   f.original_language_id,
   l2.name as original_language_name,
   f.rental_duration,
   f.rental_rate,
   f.length,
   f.replacement_cost,
   f.rating,
   f.special_features,
   f.last_update,
   cat.category_id,
   cat.name as category_name
FROM film as f
LEFT JOIN language as l1 on l1.language_id = f.language_id
LEFT JOIN language as l2 on l2.language_id = f.original_language_id
LEFT JOIN film_text as ft on ft.film_id = f.film_id;

Aber wie mache ich das mit der Zwischentabelle?

Und was wäre der beste Weg, wenn es mehrere Zeilen aus einer anderen Tabelle für einen Film geben würde. Wie es bei den Daten aus der Tabelle "actors" ist?

vielen Dank schonmal...

...zur Frage

Freut mich, dass ich helfen konnte. Der Vollständigkeit wegen noch die MariaDB Doku zu GROUP_CONCAT

...zur Antwort

SQL Query über mehrere Tabellen?

Hallo,

ich versuch Daten über mehrere Tabellen aus einer MariaDB mit einem einzelnen SELECT zu lesen.

Als Beispiel dient die MySQL Beispieldatenbank Sakila:
https://dev.mysql.com/doc/sakila/en/

Aus der Datenbank möchte ich Filme laden. Sie sind in der Tabelle "film" gespeichert und haben den Primärschlüssel "film_id".

In dem Select möchte ich auch gleich die Kategorien aus der Tabelle "category" einbeziehen.

Die Verknüpfung zwischen Film und Kategorie funktioniert über die Tabelle "film_category". Es gibt für jeden Film nur eine Kategorie!

Für einfache Beziehungen zu anderen Tabellen bekomme ich das so hin:

SELECT
   f.film_id,
   f.title,
   ft.title as text_title,
   f.description,
   ft.description as text_description,
   f.release_year,
   f.language_id,
   l1.name as language_name,
   f.original_language_id,
   l2.name as original_language_name,
   f.rental_duration,
   f.rental_rate,
   f.length,
   f.replacement_cost,
   f.rating,
   f.special_features,
   f.last_update,
   cat.category_id,
   cat.name as category_name
FROM film as f
LEFT JOIN language as l1 on l1.language_id = f.language_id
LEFT JOIN language as l2 on l2.language_id = f.original_language_id
LEFT JOIN film_text as ft on ft.film_id = f.film_id;

Aber wie mache ich das mit der Zwischentabelle?

Und was wäre der beste Weg, wenn es mehrere Zeilen aus einer anderen Tabelle für einen Film geben würde. Wie es bei den Daten aus der Tabelle "actors" ist?

vielen Dank schonmal...

...zur Frage

Das ist relativ simpel: Du joinst film auf film_id mit film_category und das Resultat mit category auf category_id:

select
  film.title,
  category.name 
from
  film inner join film_category using(film_id)
  inner join category using(category_id);

Das zwischen film und category eine one-to-many Relation vorliegt wäre eine Zwischentabelle nicht nötig gewesen, für die Übersicht aber wohl sinnvoll.

...zur Antwort

Oje, Du hast hier einiges falsch verstanden:

  1. Du verschiebst die Daten von der SD Karte sehr sicher nicht in den Hauptspeicher, sondern auf Deine Festplatte.
  2. Bei so einem Vorgang (gerade bei einem modernen OS) hat die CPU sehr wenig zu tun: Die Memory Controller übernehmen hier die Arbeit und Techniken wie DMA erlauben die CPU fast idle zu laufen.

Du kannst die Leistung Deiner CPU auf gar keinen Fall durch eine Schreiboperation auf Deine Festplatte messen. Nutze dafür ein geeignetes Benchmark Programm, beispielsweise speziell für Intel Prozessoren dieses: https://software.intel.com/en-us/articles/intel-power-gadget/

...zur Antwort

Ja kann man! Der Client ist zwar offiziell noch Beta läuft aber einwandfrei. Ich spiele seit Season 3 auf einem MacBook, ohne jegliche Probleme!

Ich persönlich habe aber ein MacBook Pro mit Nvida Karte, mit diesen Intel Grafik Chips geht's auch, aber da lässt die Grafik dann wirklich zu wünschen übrig.

...zur Antwort

Mein Tipp: Überall dabei sein!

In Vorlesungen neben Leute setzen, in alle Übungen gehen und mitmachen.

Gerade am Anfang gibt es so viele Angebote für Erstsemester, nimm sie wahr und gehe hin. Wer nicht dabei ist, hat Pech gehabt. Irgendwann kommt der Punkt, an dem alle jemanden kennen. Dann wird es schwerer wo dazu zugehören. Am Anfang geht es aber sehr vielen wie Dir. Sei offen, rede mit Leuten, auch wenn sie Dir am Anfang nicht so vorkommen, als würden sie Deine besten Freunde werden.

Ich hatte zu Beginn relativ viele "Bekannte", mit der Zeit sind es einige, wenige geblieben. Die sind dafür richtige Freunde geworden. Das ist der normale Lauf der Dinge, wenn man etwas Neues anfängt.

...zur Antwort

Hallo,

Char Arrays sind Relikte aus der C Zeit, heutzutage solltest Du, es sei denn, Du benutzt irgendwas spezielles, strings verwenden.

Mehr dazu, auch Nachteile des Char Arrays findest Du hier:

http://www.willemer.de/informatik/cpp/string.htm

...zur Antwort

Hallo,

es scheint so, als würden Spotify und Co. dazu die Windows Push Notification Services nutzen. Die sehen aber vor, dass Du von einer Cloud aus eine Notification sendest.

Mehr Infos hier: https://msdn.microsoft.com/de-de/windows/uwp/controls-and-patterns/tiles-and-notifications-windows-push-notification-services--wns--overview

Die Frage ist, ob C# das auch so hinbekommt. Guck Dir mal das hier an: https://msdn.microsoft.com/de-de/library/ms172539(v=vs.90).aspx

Und das hier: https://msdn.microsoft.com/windows/uwp/controls-and-patterns/tiles-and-notifications-choosing-a-notification-delivery-method

...zur Antwort

Wenn sie bereits erbrochen hat sollte das okay sein. Guck, dass sie seitlich liegt, falls nochmals was kommt.

Ansonsten ist ein guter Schlaf das Einzige, was jetzt hilft. Stell schon mal Wasser bereit, das wird sie morgen brauchen!

...zur Antwort

Meist kommt sowas von Websiten, die ungefragt irgendwelche Videos abspielen. Hattest Du zufällig Deinen Browser geöffnet?

Ansonsten siehst Du in der Aktivitätstanzeige alle offenen Prozesse (alternativ Terminal: top). Da kannst Du nach Systemprozessen filtern.
Via Apfelsymbol im Finder Sofort Beenden siehst Du alle Programme, die ausgeführt werden und keine Dienste sind (Tastenkombination cmd+Shift+Esc).

...zur Antwort

Glaubst Du wirklich, dass es gesund ist, wenn man mit einer Lunge, die dafür gemacht ist Luft zu atmen, verdampftes, chemisch hergestelltes Glycerin inhaliert?

Natürlich ist es ungesund. Gesünder als Zigaretten bestimmt, vielleicht auch gesünder als E-Zigarette mit Nikotin, aber auf jeden Fall ungesund.

Lass es lieber sein!

...zur Antwort

Installier einfach die GNU Compiler Collection. Da ist ein C Compiler dabei.

https://gcc.gnu.org

Ist vermutlich der weltweit verbreitetste C Compiler.

...zur Antwort

Es gibt spezielle Progammiersprachen oder Bibliothekten für Langzahlarithmetik.

Hier findest Du einige: https://de.m.wikipedia.org/wiki/Langzahlarithmetik

...zur Antwort

Wie kann ich ein Pop-Up-Fenster in Apple Numbers realisieren?

Hallo,

ich plane eine Verwaltungssoftware für das Notenarchiv unseres Orchesters. Neben den Standardwerten der Notendatenbank wie Komponist, Genre, Dauer,... soll die Schlüsselfunktion der Datenbank die Angabe der vorhandenen Instrumente/Stimmen sein. Geplant ist diese Angabe durch simple "Checkboxes" also "Häkchen setzen".

Kurz zum Hintergrund: Ich habe im Voraus recherchiert, wie man das Projekt realisieren kann. Vom Platzhirsch "SoftNote" wurde ich bitter enttäuscht, dort muss man die vorhandenen Stimmen durch Zahlen festlegen - zeitaufwendige und unnötige Arbeit, wenn doch nur wichtig ist, DASS eine Stimme da ist und nicht, wie oft. Im Internet war von "Filemaker" die Rede. Trotz meiner langjährigen Erfahrung in Web-CMS und Computern war mir der Gebrauch einfach zu kompliziert (ich besitze keine Programmierkenntnisse, die aber bei der Verwirklichung meines Projekts mit Filemaker nötig wären für Scripts und Aktionen). Ich zweifle hiermit nicht an der Qualität der Software, das Niveau ist mir als "Laie" lediglich zu hoch. Schlussendlich bin ich bei meinem alten Freund "Numbers" von Apple geblieben, welches zwei Vorteile aufweist, die ich nicht missen möchte. 1) Die Einfachheit/Übersichtlichkeit (welche Filemaker scheinbar auch bietet) und 2) die Möglichkeit, die Tabelle im Internet zu bearbeiten. Das ist mit Apples iCloud und der dort verankerten Freigabefunktion (und dann die Einbettung über iFrame) ohne Probleme möglich. Filemaker bietet die Publizierung im Web auch, allerdings für weitaus mehr Geld (man muss "Filemaker Server" besitzen). Genug der Hintergrunderklärungen.

Ich habe gestern mit der Erstellung der Datenbank in Numbers begonnen, stieß aber bei einer übersichtlichen Angabe der Stimmen auf Probleme. Meine Vorstellung war eine Liste aus Checkboxen pro Musiktitel (siehe Screenshot 1), die ich mit Numbers auch schnell separat realisieren konnte. Diese kann ich aber nicht übersichtlich für jedes Stück in meiner Datenbank anlegen, da der Platz fehlt und jeder Titel nur eine Zeile einnehmen sollte... Die Datenbank sieht bisher aus wie in Screenshot 2. Meine Idee war ein "Pop-Up-Fenster" pro Titel, in dem dann separat die Auswahlkästchen-Tabelle integriert ist. So spart man den Platz. Leider habe ich nicht herausgefunden, wie man so etwas realisieren kann... Wie muss ich vorgehen? Falls es keine Möglichkeit gibt, kennt vielleicht jemand eine Alternative, wie ich dieses Projekt realisieren kann?

Danke an alle, die meine Frage aufmerksam gelesen haben! Ich freue mich auf Eure Antworten und Lösungen! ;)

Danke im Voraus!

Mit freundlichen Grüßen,

Eric

...zur Frage

Ein Fall für MS Access! Einfach in der Bedienung, per grafischer Oberfläche ist alles machbar (keine Skriptkenntnisse nötig!) und mithilfe von Formularen kannst Du übersichtlich auf alle Daten zugreifen.

...zur Antwort

Guck mal hier nach:

http://www.script-example.com/themen/Bildschirmschoner-verhindern.php

Scheint aber ehr VBS zu sein, vielleicht nützt es Dir ja trotzdem :)

...zur Antwort

Soweit ich informiert bin handelt es sich in beiden Fällen um einen 2.0l Motor. Wie sehr sich andere Bauteile (Ventile, Wellen etc. ) unterscheiden weiß ich nicht.

Das Problem ist, dass es bei einem reinen Saugmotor ohne Aufladung schwer ist viel mit Chiptuning rauszuholen, weil die Aufladung eben ein leicht steuerbarer aber effektiver Parameter ist, den es hier nicht gibt.

Ich würde Dir empfehlen bei Motor Talk im entsprechenden Forum nachzufragen, da gibt's echte Profis.

...zur Antwort

Aber von links nach rechts ist ja falsch:

3+4=7
7x5=35

Richtig wäre aber

4x5=20
3+20=23

...zur Antwort