我正在使用php和sqlite的簡單投票系統。我預先構建了一個完整的場景,並在sqlite命令行中進行了測試,它在那裏效果很好。 但是一個查詢,它應該返回一個投票的所有可能的答案,並投票支持它的用戶,不工作了......SQLite子查詢不能在PHP中工作
表:
CREATE TABLE polls (
question CHAR(200)
);
CREATE TABLE choices (
poll_id INTEGER(5),
choice_text CHAR(200)
);
CREATE TABLE votes (
poll_id INTEGER(5),
user_id INTEGER(5),
choice_id INTEGER(5),
PRIMARY KEY (poll_id, user_id)
);
CREATE TABLE users (
name CHAR(100),
pass CHAR(100),
session CHAR(100)
);
PHP:
$query = "SELECT choices.rowid,choices.choice_text,
(SELECT users.name FROM users WHERE votes.user_id=users.rowid) AS name
FROM choices,polls LEFT OUTER JOIN votes ON choices.rowid = votes.choice_id
WHERE polls.rowid=choices.poll_id AND polls.rowid='$pollid'";
$result = $db->arrayQuery($query, SQLITE_ASSOC);
echo json_encode($result);
這將返回:
Warning: SQLiteDatabase::arrayQuery() [sqlitedatabase.arrayquery]: no such column: votes.user_id in C:\Users\jan\Eigene Programme\xampplite\htdocs\cattle\vote\update.php on line 122
false
我試圖在改變的子查詢
(SELECT users.name FROM users,votes WHERE votes.user_id=users.rowid) AS name
這工作,但不會返回相同的結果的第一件事:/ 我修修補補很長與查詢,因爲我不是專業人士,所以我想這可能會有更好的查詢?
謝謝,就是這樣! (不能相信我的嘗試比「專業」解決方案更加醜陋:)) – Jan 2009-10-17 14:09:49