2016-11-27 6 views
1

Beispiel Tabelle StructureWie subtrahieren Sie Werte von zwei verschiedenen Spalten aus zwei verschiedenen Tabellen?

Tabelle 1

ID  | Name | Price 
----------------------------- 
1  | Casio | 30 
2  | Titan | 40 

Tabelle 2

ID  | Place | Price 
----------------------------- 
1  | Cali | 30 

2  | Mexi | 10 

Operation auszuführen: Tabelle1 (Preis) - Tabelle 2 (Preis) für ID = 1

Neue Tabelle 1

ID  | Name | Price 
----------------------------- 
1  | Casio | 0 
2  | Titan | 40 

ID entspricht in beiden Tabellen

+0

Does Datensätze aus verschiedenen Tabellen Spiel von ID-Spalte? Wenn ja, warum sind diese Datensätze in verschiedenen Tabellen? – yvs

+0

zunächst sehe ich keine Logik der Subtraktion table1.casio.price-table.cali.price. Zweitens sind Sie sicher, dass beide Tabellen die gleiche Anzahl an Zeilen enthalten werden? –

+0

Ja ID-Übereinstimmungen in beiden Spalte –

Antwort

1

Sie sollten eine andere Datenbank-Design betrachten diesen Fall zu behandeln.

Aber um Ihre Frage zu beantworten, Sie eine Ansicht erstellen können:

create view Differences2 as (
    select t1.id, t1.price - t2.price 
    from t1, t2 
    where t1.id = t2.id 
) 
+1

Diese Antwort berechnet einen Unterschied zwischen jedem Datensatz aus Tabelle1 und jedem Datensatz aus Tabelle2, auch wenn die Datensätze nicht übereinstimmen. Ich denke, es muss "WHERE" Bedingung in Ihrer Antwort geben. – yvs

+0

Danke, vergessen Sie die Where-Klausel :) – Max

1

Wie Sie beide Tabelle Sie folgende Abfrage verwenden können, müssen Spalte gleiche ID erzählt.

SELECT table1.ID, table1.Name, (table1.Price-table2.Price) AS Price 
FROM table1 
INNER JOIN table2 ON table1.ID = table2.ID 

Wenn Sie Datensatz aktualisieren Sie folgende verwenden:

UPDATE table1 
    INNER JOIN table2 ON table1.ID = table2.ID 
     SET table1.Price = (table1.Price-table2.Price) 
+0

Diese Antwort geht von "Ja ID passt in beiden Spalten", aber ich glaube, es ist ein falscher Kommentar, so weit die erste ID für gut, die zweite ID für Platz. und es sollte eine zu vielen oder viele zu vielen Beziehungen geben. – yvs

+0

@yvs Ich stimme dir zu, das ist, was ich in Kommentaren gefragt habe und es scheint mir auch unlogisch. Denn wie Casio-Preis von Cali Preis subtrahieren –

Verwandte Themen