By sql script below I get count(*)=1 for two rows in result set! I use
SQLite 3.7.3. In 3.7.0.1 this work correct.

---------------------------------------
CREATE TABLE user
(
  id INTEGER PRIMARY KEY
);
INSERT INTO "user" VALUES(4);
INSERT INTO "user" VALUES(11);

CREATE TABLE user_record
(
  record_id INTEGER PRIMARY KEY,
  record_version INTEGER,
  user_id INTEGER NOT NULL,
  name TEXT
);
INSERT INTO "user_record" VALUES(76,8,11,'A');
INSERT INTO "user_record" VALUES(86,11,4,'B');
INSERT INTO "user_record" VALUES(87,3,4,'B');

CREATE VIEW view_user AS
SELECT user.id,user_record.*
FROM user, user_record
WHERE user.id=user_record.user_id
GROUP BY user.id
ORDER BY name ASC;

-- returns two rows
select * from main.view_user where record_id in (select record_id from
main.view_user where name like '%');
-- but count(*) returns 1
select count(*) from main.view_user where record_id in (select record_id
from main.view_user where name like '%');
-- equal query returns only single row!
select * from main.view_user where record_id in (select record_id from
main.view_user where name like '%') order by name;

---------------------------------------

-- 
Best regards, Alexey Pechnikov.
http://pechnikov.tel/
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to