我正在构建一个调查项目,并且有三个表:users
、questions
、answers
,其中answers
包含用户回答的每个问题的记录(如果他们还没有回答给定的问题,则没有记录)。
我的数据结构是这样的:
CREATE TABLE users (
id INT NOT NULL,
name VARCHAR(255),
PRIMARY KEY (id)
)
CREATE TABLE questions (
id INT NOT NULL,
text VARCHAR(255),
PRIMARY KEY (id)
)
CREATE TABLE answers (
id INT NOT NULL,
id_q INT NOT NULL,
id_u INT NOT NULL,
answer VARCHAR(255),
PRIMARY KEY (id),
FOREIGN KEY (id_q) REFERENCES questions(id),
FOREIGN KEY (id_u) REFERENCES users(id)
)
我已经尝试了一些基本的东西,LEFT JOIN
但无济于事。我已经用于ORDER BY RAND() LIMIT 0,1
问题的随机性部分。我怀疑这并不像我想象的那么简单。(我正在自学 SQL .. 我需要使用其中一种我还不知道的子查询吗?)
如何编写 MySQL 来选择一个没有来自指定用户的相应答案的随机问题?