SQL Abfrage gibt Ergebnisse mehrfach aus?

3 Antworten

Deine Abfrage ergibt keinen Sinn. Du gibst einfach beide Tabellen zusammen aus.

Willst du Einträge aus einer Tabelle mit einer anderen Tabelle über eine ID verknüpfen, solltest du das per Join machen. In der MySQL Doku findest du, wenn du nach Join suchst, einfache Beispiele.

Bin nicht sicher, ob du in deinem Biespiel was verknüpfen willst.

Ansonsten kann man per UNION auch SELECTs zusammenführen.

Das ist schon richtig so, wie soll die Datenbank die denn auch anders ausgeben?

Wenn Du beide Tabellen zusammen ausgegeben haben willst, dann musst Du der Datenbank mitteilen, welche der Zeilen von beiden Tabellen zusammen geführt werden sollen. Tust Du das nicht, wird jede Zeile von Tabelle 1 pro Zeile von Tabelle 2 ausgegeben. Wenn deine zweite Tabelle also 3 Zeilen hat anstatt 2, dann würdest Du alles dreifach ausgegeben bekommen.

Was Du suchst, ist ein Join. Damit kannst Du angeben, über welche Spalte die beiden Tabellen verknüpft werden sollen.

In der Regel hat eine Tabelle dann eine ID der anderen tabelle als eigene Spalte, dann könntest Du schreiben:

SELECT *
FROM Table1
JOIN Table2 ON Table2.IdTable1 = Table1.Id

Probiere damit mal rum. Das zu erklären, würde viele Seiten kosten, das probierst Du lieber selber aus.

Du kannst dir ja auch mal dieses Merk-Bild anschauen:

Bild zum Beitrag

Quelle: https://www.fachinformatiker.de/topic/156801-sql-join/?do=findComment&comment=1460651

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
 - (Computer, Technik, Technologie)

Was willst du denn da nebeneinander anzeigen lassen


1601407321107 
Fragesteller
 24.04.2018, 16:11

Die beiden 'wert' -Spalten aus den Tabellen 'Einnahmen' und 'Ausgaben'. Ursprünglich war die Idee aus diesen beiden Tabellenspalten jeweils die Summe zu errechnen um dann eine Differenz bilden zu können die in meiner Übungsdatenbank sozusagen das Vermögen abbildet. Das funktioniert nur leider aufgrund des geschilderten Problems nicht.

0
theomeo  24.04.2018, 16:14
@1601407321107

Um ehrlich zu sein verstehe ich das nicht :D Einnahmen und Ausgaben sind doch was vollkommen anderes. Es muss ja ein bestimmtes Kriterium geben für die Wertepaare.

Ich würde das mit den zwei Tabellen über den Haufen schmeißen und eine Tabelle "Buchungen" machen, die alle Buchungen hält. Ausgaben werden als negativer Wert abgespeichert, Einnahmen als positiver Wert. Alle Buchungen werden chronologisch auf den ursprünglichen Kontostand (0) ausgeführt. Das ist dann dein aktuelles "Vermögen".

0