MySQLデータベースの戦闘学習 - 個人的なメモと概要

  • データベースMy'SQL減算のデータを使用する場合、
  • このような二つのテーブル例えば、私は現在::注意を払うまでに、不可能ではない
    ここに画像を挿入説明
    ものがtheorder店の注文に使用されている製品が店舗用品に使用されているが、株式を聞いてみたい、あなたは、製品テーブルの量でtheorderテーブルを減算する必要があります通常、対応する製品の数の合計。
    私はこれを書いて開始しました:
 select (product.amount-select sum(theorder.amount) from theorder where productID=3) as inventory where
    -> product.ID=3 from product;

:この文で間違っている人々 、非常に正常に見えた
ERROR 1064(42000):あなたは、あなたのSQL構文でANエラーを持っている持っていることで、右の構文に近い「SELECT SUMを使用するためにあなたのMySQLサーバのバージョンに対応していることを手動で確認( theorder.amount)theorderのproductID = 3から 「1行目の在庫など)
、私は、書き込みに段階的に変更し:
ここに画像を挿入説明
とにかく、全体と共に別れされないであろう。
その後、オンライン、それぞれ、検索して選択し、その後、減算結果が出てきた選択し、それは次のようになります。

 select(
 (select product.amount as s2)
 -  (select sum(theorder.amount) as s1 from theorder where productID=3)
 )
  as inventory from product where I

ここに画像を挿入説明
(ただし、私は、このガチョウの乗算ルーチンを使用するようにしないだろう。)

  • ビルドテーブルを繰り返さないために、暁明と科学、:
create table if not exists ohh
(......);
  • また、あなたは???代わりに、通常の漢字を表示できるように、テーブルの時に建設文字セットを設定することができます。
 create table  if not exists theOrder(ID int primary key auto_increment,clientID int,number int,orderDate date,productID int,amount int)default charset=utf8

ここに画像を挿入説明

  • 実際の新兵のすべての最新の情報を見つけるためにSQLデータベース
    :アイデア
    の最大のエントリの日付従業員情報を見つけるための最初の必要性を:
 select max(hire_date) from employees;

それはちょうど、「最大エントリの日付を」見つけ、私たちは「最大エントリー日対応の従業員を」見つける必要があります:

  select * from employees
 where hire_date =
  (select max(hire_date) from employees);

(括弧ことに注意してください。)

  • 新兵の実際の時間を見つけるためのSQLデータベースには、すべての従業員情報の第三位となりました。
    降順の最初のエントリのタイム従業員、次いで「1」インクリメントカラム1を起動し、「1」、「2」を選択し、「3」は、従業員情報に対応する生成:アイデア。
    行番号を追加するために、結果セット内の各行が、これは唯一のバージョン8.0によってサポートされている:が機能「ROW_NUMBER」この機能をサポートである
    ここに画像を挿入説明
    オフセットと「1」制約返される行の最大数を制限する句を使用する必要がありますオフセット「2」(「0」から)を指定します。
select * from employees
order by hire_date desc
limit 1 offset 2;
公開された47元の記事 ウォンの賞賛1 ビュー1261

おすすめ

転載: blog.csdn.net/weixin_41750142/article/details/103879635