おふとんの中から寝言をつぶやく

ビットコインなどの暗号(仮想)通貨関連の話題を中心に雑多に書きます。

SQLでOUTER JOINを使うときに、whereを使うときの書き方

今日少し悩んだところを書き残しておきます。

 

SQLでOUTER JOINを使うときに、最初に書いたテーブルに対してwhereを使おうとしたところ、以下のようなエラーが出ました。

 

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...

 

 

テーブルa

+--+----+-----+

|id|name|flag1|
+--+----+-----+

 

テーブルb

+--+----+

| id| data |
+--+----+

 

SELECT ta.id, tb.id

FROM テーブルa AS ta

WHERE flag1 IS NULL 

LEFT OUTER JOIN テーブルb AS tb 

ON テーブルa.ID = テーブルb.ID;

 

上記のクエリはエラーになる。

ではどう書くか。

 

SELECT ta.id, tb.id

FROM テーブルa AS ta

LEFT OUTER JOIN テーブルb AS tb

ON テーブルa.id = テーブルb.id

WHERE ta.flag1 IS NULL;

 

ON 条件のあとに、whereを書ける。

 

  

 

mysql workbench8.0でダッシュボードを出す方法

よくわかってなくてしばらくはまってたのが解決したので備忘として書いておきます。

 

ダッシュボードを出すときは、まずデータベースに接続する必要があります。

その手順は以下の画像で。

f:id:harmonir:20200706025729j:plain

赤の矢印の順番に押していく

そうすると以下のようなかっこいい画面が出せます。

f:id:harmonir:20200706025853j:plain

Dashboard

 

 

ruby+sinatra+slimで変数を使ってcssを定義する方法

理解してる人は簡単にできるのかもしれないけど、出来るようになるまでに時間かかった(そしてググっても出てこなかった)ので記録として残しておきます。

 

ruby+sinatra+slimで変数を使ってcssを定義する方法です。

 

app.rb

get "/test" do
raw_data = [
"Dallas, USA",
"Tokyo, Japan",
"Munich, Germany",
]

@css = {
"th": ["background-color", "#bde9ba"]
}

@results = {}

raw_data.each do |item|
city, country = item.split(/, \s* /x)
@results[city] = country
end

slim :test, :layout => :csstest
end

csstest.slim

doctype html
html
  head
    meta charset='utf-8'
    link rel="stylesheet" type="text/css" href="/css/input.css"

    -@css.each do |k, v|
      css:
        #{k} {#{v[0]}: #{v[1]}}

  body
    h1 This is the Layout.
    == yield

test.slim

table
  thead
    tr
      th City
      th Country

  tbody
    - @results.each do |city, country|
      tr
        td = city
        td = country

csstest.slimの

-@css.each do |k, v|
  css:

ここの順番が逆だとエラーになってうまく行きませんでした。

これを応用していけば、データベースのデータをカード化して表示するときにいろいろ便利に書けるはず…

例題の中身は、MySQLRuby Sinatraテーブル-スタックオーバーフロー https://stackoverflow.com/questions/30929545/ruby-sinatra-table-from-mysql

こちらを使わせてもらいました。