php - 两个表循环多次的结果集

标签 php mysql

我从 3 个表中提取数据

表 1:任务状态

primary_key   
test_group_id | s_id | date_taken | status
q1            | 123  | 2012-08-13 | completed

表 2:question_bank

 foreign key    unique key |
 group_id     | q_id       | question
 q1           | 1          | What is your name?
 q1           | 2          | Where were you born?

表 3:assignment_answers

foreign key  
g_id         | q_id | s_id  | s_answer
q1           | 1    |  123  | Mark Johnson
q1           | 2    |  123  | Florida 

现在我正在尝试显示相应问题的答案。我面临的问题是返回的结果集循环多次。

例如,如果 question_bankassignment_answers 各有 2 条记录,则结果集有 4 条记录;如果两者都有 4 条记录,则结果集有 16 条记录。所以这个数字正在平方。这使我确信我以错误的方式拉动它。以下是我正在使用的查询:

SELECT 
    * 
FROM 
    assignment_status s, 
    question_bank b, 
    assignment_answers a
WHERE 
    s.test_group_id = b.group_id = a.g_id = 'q1'

我也试过

SELECT 
    * 
FROM 
    question_bank b, 
    assignment_answers a
WHERE 
    b.group_id = a.g_id
    AND b.group_id = 'q1'
    AND a.g_id = 'q1'

两个查询都会导致重复相同的多行。

有什么建议、想法、想法吗?

提前致谢。

最佳答案

我认为您缺少 question_bank b、assignment_answers a 的条件

SELECT 
    * 
FROM 
    assignment_status s, 
    question_bank b, 
    assignment_answers a
WHERE 
    s.test_group_id = b.group_id = a.g_id = 'q1' AND b.q_id = a_q.id

关于php - 两个表循环多次的结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11933141/

相关文章:

php - MySQL UPDATE 或 INSERT 取决于 ID 的存在

php - 在php中将字符串转换为日期类型

php - Javascript 无法获取 AJAX MODAL 形式的变量值

mysql - rails : Use of 'foreign_key'

php - 如何在 MySQL 中通过一次选择为每个 'category' 获取 5 条记录?

javascript - Bootstrap 验证后无法将 Bootstrap 表单从 View 发送到 Controller

php - 如何验证服务器调用是从应用程序发出的?

mysql - mysql explain 中更高的行计数意味着好还是坏?

mysql - 根据 MySQL 中其他字段的值为字段分配值

php - 在嵌套 foreach 循环内使用 MySQL 查询的缓慢 Excel 报告 [Laravel 5.3]