php - 获取MySQL不同表中的对应列

标签 php mysql

有没有办法可以使用 sub_name 而不是 sub_id?

这是我的代码..

echo "<table border=1 align=center><tr class=style2><td>Date<td>Student Name <td> Subject <td> Score";

$sortQuery = mysql_query("select * from mst_adminresult",$cn) or die(mysql_error());

while($row=mysql_fetch_row($sortQuery))
{
    echo "<tr class=style8><td>$row[5]<td>$row[1] <td align=center> $row[4] <td align=center> $row[3]/20";   
}
echo "</table>";

此代码显示所有考试的结果。在 Subject 中,其输出是主题 ID。我只是想知道是否有什么方法可以获得它的主题名称。主题名称在不同的表中。

adminresult_tbl

CREATE TABLE `mst_adminresult` (
  `adminResultID` int(5) NOT NULL,
  `login` varchar(20) NOT NULL,
  `test_id` varchar(20) NOT NULL,
  `score` int(3) NOT NULL,
  `test_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

主题_tbl

CREATE TABLE `mst_subject` (
  `sub_id` int(5) NOT NULL,
  `sub_name` varchar(25) DEFAULT NULL,
  `sub_desc` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

测试_tbl

CREATE TABLE `mst_test` (
  `test_id` int(5) NOT NULL,
  `sub_id` int(5) DEFAULT NULL,
  `test_name` varchar(30) DEFAULT NULL,
  `total_que` varchar(15) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

程序的流程是,当用户参加考试时,用户将被重定向到列出所有科目的页面,然后用户选择她想要参加的科目,之后会出现一个列表测试将显示,然后用户将再次选择,此时用户可以进行测验。

在主题列表中,我将其称为subject_tbl。在测试列表中,test_tbl.当用户完成考试后,它将存储在adminresult_tbl

最佳答案

连接 3 个表。试试这个:

SELECT * FROM mst_adminresult m
JOIN test_tbl t ON t.test_id = m.test_id
JOIN subject_tbl s ON s.sub_id = t.sub_id;

关于php - 获取MySQL不同表中的对应列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37360183/

相关文章:

php - 如何配置 CakePHP 的 $this->Auth->login() 以使用自定义密码哈希

php - Prestashop 实际数量与实物数量不同

php - mySQL 数据库 - 每 15 分钟将某些列重置为 '0'

python - mysql - 如何确定存储可变字符串的字段的长度?

java mysql java.lang.OutOfMemoryError : Java heap space

php - SimpleXML 错误处理

php - 使用 MySQL 和 PHP 进行特定模式搜索 - 应该怎么做?

php - 如何使用join和多个where条件?

php - 我怎样才能从 angularJS 到 phalcon php 发出完整的回发请求

MySQL REGEXP 在哪里没有找到预期的结果