SQLで、viewを元にして作ったviewの値がnullになるときがあります。
何が原因か、ご教授頂きたく、宜しくお願い致します。
(実際につかっているDBはMriaDBで、件数は25000件ほどです)
<例>
概要
A:「Inputテーブル(t1)」と「属性テーブル(t2)」からview「結合テーブル(V1)」を作成。
B:上記view「結合テーブル(V1)」を元に view「最終テーブル(V99)」を作成。
通常は、view「最終テーブル(V99)」は正常に機能していますが、原因不明で値がnullになってしまうことがあり、気が付いた都度、view「最終テーブル(V99)」をDROP して再度CREATEしています。
※view「結合テーブル(V1)」は、常に正常に機能しています。
①view「結合テーブル(V1)」
SQL
1CREATE VIEW V1 2AS 3SELECT 4t1.DB_id, t1.DB名, t1.id, t2.属性_id, t1.属性名, t1.値, 5FROM `inputテーブル` as t1 6inner join 7属性テーブル as t2 8on t1.属性_id=t2.属性_id 9
SQL
1CREATE VIEW V99 2AS 3SELECT 4 5id, 6MAX(CASE 属性名 WHEN '名前0' THEN 値 else null END) AS 名前, 7MAX(CASE 属性名 WHEN '住所0' THEN 値 else null END) AS 住所, 8MAX(CASE 属性名 WHEN '年齢0' THEN 値 else null END) AS 年齢 9FROM 10V1 11GROUP BY 12id 13HAVING 14MAX(CASE WHEN DB_id='1' THEN DB名 END) = 'sample' 15
■お尋ねしたいこと
①
MySQLでviewを元にして作ったviewの値がnullになるときがあります。
何が原因か、また、その対応策について、ご教授頂きたく、宜しくお願い致します。
②
viewをもとに、viewをつくることは避けた方がいいのでしょうか
(複雑になるからとかの理由で、、、)
それとも、通常、現場では普通に使う方法なのでしょうか。
回答2件
あなたの回答
tips
プレビュー