2 つのリンク: Link 1とLink 2。列の値が異なるのはなぜですか???? MySQL バージョンの正しい結果。SQLite バージョンで同じ結果を得るにはどうすればよいですか?
最初のテーブル:
CREATE TABLE Subjs
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
subj varchar(50)
);
INSERT INTO Subjs (subj) VALUES ('chair');
INSERT INTO Subjs (subj) VALUES ('table');
2 番目のテーブル:
CREATE TABLE Params
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
param varchar(50)
);
INSERT INTO Params (param) VALUES ('lenght');
INSERT INTO Params (param) VALUES ('width');
INSERT INTO Params (param) VALUES ('height');
3 番目のテーブル:
CREATE TABLE Subj_Param_value
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
value varchar(50),
subj_id INTEGER NOT NULL,
param_id INTEGER NOT NULL
);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('20', 1, 1);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('30', 1, 2);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('150', 1, 3);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('30', 2, 1);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('20', 2, 2);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('90', 2, 3);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('30', 1, 1);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('60', 1, 2);
INSERT INTO Subj_Param_value (value, subj_id, param_id) VALUES ('170', 1, 3);
クエリ:
select * from (
select * from Subj_Param_value ORDER BY id DESC
) t, Subjs, Params
where
Subjs.id=t.subj_id
and Params.id=t.param_id
and Subjs.id=1
group by t.param_id;
最初のテーブルの特定のレコードの 2 番目のテーブルのすべてのパラメーターについて、3 番目のテーブルから最新の値を取得したいと考えています。たとえば、椅子の長さ、幅、高さの最新の値です。
SQLite と MySQL で結果が異なる... MySQL バージョンのような SQLite バージョンでの結果が必要です。なにか提案を?