Jquery SQL-t1.value与t2.column name匹配的联接表?
我有以下两个表,其中包含测量设置和测量数据 其想法是通过调查问题将两个表连接起来,该问题在设置中定义为一个值,与数据表的匹配调查问题列相匹配,提取该问题的调查分数 如何基于值+列组合联接两个表,然后提取特定调查的调查分数 我目前只从调查数据表中获取数据,但我缺少设置中的Jquery SQL-t1.value与t2.column name匹配的联接表?,jquery,mysql,sql,Jquery,Mysql,Sql,我有以下两个表,其中包含测量设置和测量数据 其想法是通过调查问题将两个表连接起来,该问题在设置中定义为一个值,与数据表的匹配调查问题列相匹配,提取该问题的调查分数 如何基于值+列组合联接两个表,然后提取特定调查的调查分数 我目前只从调查数据表中获取数据,但我缺少设置中的类别列,这使得我很难在网站上对输出进行分类,因为我不想一次显示所有数据。以下是我的PHP供参考: $sql = "SELECT * FROM `survey_data` WHERE `Survey ID` = '".$i
类别
列,这使得我很难在网站上对输出进行分类,因为我不想一次显示所有数据。以下是我的PHP供参考:
$sql = "SELECT * FROM `survey_data` WHERE `Survey ID` = '".$id."'";
$result = $db->query($sql); // check if record exists based on ID number
if($result->num_rows > 0) { // if record is found, proceed accordingly
if(!$result = $db->query($sql)) {
die('There was an error getting survey details for record ' . $id . ' [' . $db->error . ']'); }
$row = mysqli_fetch_assoc($result);
foreach($row as $column => $value) {
if ( $value != '' ) {
echo "
<tr>
<td>$column</td>
<td>$value</td>
</tr>";
}
}
$sql=“从'survey_data'中选择*,其中'survey ID`='”$ID.“;
$result=$db->query($sql);//根据ID号检查记录是否存在
如果($result->num_rows>0){//如果找到记录,则相应地继续
if(!$result=$db->query($sql)){
die('获取记录'$id.['.$db->error.]'的调查详细信息时出错;}
$row=mysqli\u fetch\u assoc($result);
foreach($行作为$列=>$值){
如果($value!=''){
回声“
$column
美元价值
";
}
}
感谢您的帮助。使用此查询:
SELECT * FROM survey_data sd inner join setting_table st on sd.Survey ID = st.setting ID WHERE `Survey ID` = '".$id."'
它将返回两个表中的所有列,但只返回匹配的列
while($row = $result->fetch_assoc()) {
echo "survey question: " . $row["question"]."<br>";
}
while($row=$result->fetch_assoc()){
echo“调查问题:”.$row[“问题”]。“
”;
}
现在,您还可以获取相应行的类别查询相当混乱,但您可以采用暴力方法:
select t2.survey_id, t1.category, t1.question,
(case when t1.question = 'Check-in Experience' then t2.`Check-in Experience`
when t1.question = 'Check-out Experience' then t2.`Check-out Experience`
when t1.question = 'Breakfast Experience' then `Breakfast Experience`
end) as value
from table1 t1 cross join
table2 t2
where t2.survey_id = ?
having value is not null;
您的表设计存在一些问题,因为两个表之间没有明确的主外键关系。该关系将是设置表中的问题值和包含调查数据表问题答案的列名。问题在于该关系不是传统的值与值之间的关系,而是v值到列。值到列名实际上不是数据库的设置方式。不,不,不。修复您的架构。数据库表不是spreadsheet@Strawberry遗憾的是,这不是一个选项,因为调查数据内容来自csv导入,其中列标题名称来自系统生成的标题,因此是间距rns没有结果。表名和列是正确的,即使我删除了
Survey ID=XXX
部分,它仍然没有结果,即使它应该显示所有行。注意,您的查询将Survey\u ID
与Setting\u ID
匹配,它们不相同,相反,st.question和sd.column\u名称是相同的。