因此在我的数据库中,我有4个单独的表。主表由ID,名称和一些其他信息组成。主要ID由其他2个表引用。例如,表1是具有学生ID /姓名/年龄的学生列表。表2由与科学专业相关的学生ID /信息组成,表3由与心理学专业相关的学生ID /信息组成。表4包含与心理学专业相关的其他信息。
我需要编写一个PHP页面,该页面接收一个学生ID,并首先打印出学生的姓名/年龄,然后,如果它存在于表2中,需要打印一组不同的信息,如果表3中存在该信息,则需要打印另一组信息(如果选择表3,则需要从表4中打印信息)。
< ul>
SELECT( CASE WHEN :variable IN
(SELECT student_id from Table 2)
THEN
......
ELSE
...
END)
我的问题是,如何检查ID是在查询的第一种情况下还是在第二种情况下,以便可以相应地打印信息。另外,如果ID在第二个查询中,则需要从新表中进一步打印信息。我该如何检查相同内容?
更新:简化的问题。如果我的ID在表2中,则选择列:A,B,C。如果在表3中,请选择列:D,E,F。查询之后,我需要根据ID所在的表来打印A,B,C或D,E,F。关于检查相同的内容
答案 0 :(得分:0)
SQL在其输出字段列表中静态定义。如果您需要问题中所述的字段,则必须提供带有别名的字段列表,以表示不同的表,在以下一行:
<head>
<!-- jQuery reference -->
<script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<!-- jQuery UI reference -->
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body></body>
也许您将不得不使用联接而不是case语句来重构查询以满足这些条件。
本质上,在查询的答案中,您不必真正担心查询的来源,或者如果相关,则触发多个查询更为传统(例如,一个接一个地进行查询,检查条件是否满足,然后有条件地执行下一个)。