MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

LEFT JOINを使用してMySQLテーブルの値を減算するにはどうすればよいですか?


2つのテーブルにいくつかの値があり、LEFTJOINを使用して値を減算する例を使用すると理解できます。ここでは、次のデータを持つ2つのテーブルを取得しています-

mysql> Select * from value_curdate;
+----+----------+-------+
| Id | Product  | Price |
+----+----------+-------+
| 1  | Notebook | 100   |
| 2  | Pen      | 40    |
| 3  | Pencil   | 65    |
+----+----------+-------+
3 rows in set (0.00 sec)

mysql> Select * from value_prevdate;
+----+-----------+-------+
| Id | Product   | Price |
+----+-----------+-------+
| 1  | Notebook  | 85    |
| 2  | Pen       | 34    |
| 3  | Pencil    | 56    |
| 4  | Colors    | 65    |
| 5  | Fevistick | 25    |
+----+-----------+-------+
5 rows in set (0.00 sec)

上記の2つの表には、それぞれ製品の現在の価格と以前の価格が示されています。次のクエリでは、LEFT JOINを使用して、両方のテーブルに格納されている同じ製品間の価格の違いを見つけます。

mysql> Select value_curdate.id, value_curdate.product, value_curdate.price as Curprice,value_prevdate.price as 'prevprice', value_curdate.price-value_prevdate.price as 'Difference' from value_curdate LEFT JOIN value_prevdate ON value_curdate.id = value_prevdate.id ;
+----+----------+----------+-----------+------------+
| id | product  | Curprice | prevprice | Difference |
+----+----------+----------+-----------+------------+
| 1  | Notebook | 100      | 85        | 15         |
| 2  | Pen      | 40       | 34        | 6          |
| 3  | Pencil   | 65       | 56        | 9          |
+----+----------+----------+-----------+------------+
3 rows in set (0.00 sec)

  1. MySQLを使用してテーブルの値を再シャッフルします

    テーブル内の値を再シャッフルするには、MySQL RAND()を使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable792 ( Name varchar(100), Subject varchar(100) ); Query OK, 0 rows affected (0.66 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable792 values('Chris','MySQL'); Query OK,

  2. MySQLで月ごとにテーブルの値を合計するにはどうすればよいですか?

    これには、EXTRACT()を使用します。これにより、特定の月のレコードを抽出できます。たとえば、1月のすべての価格を追加します(年に関係なく)。 まず、-を作成しましょう mysql> create table DemoTable1415    -> (    -> ProductPurchaseDate date,    -> ProductPrice int    -> ); Query OK, 0 rows affected (0.53 sec) insert-を使用して、