如何在 moodle 中创建复杂的 sql 查询
How to create complex sql queries in moodle
你好,我有这个问题,我不知道如何在 moodle 上创建复杂的查询,我阅读了有关数据操作的文档,但对我没有任何帮助。
这是我要获取的查询:
SELECT mdl_pilar.nombrepil, mdl_punto.texto as pregunta, mdl_audidet.texto as comentario, mdl_audidet.resultado
FROM mdl_audidet, mdl_pilar, mdl_punto
WHERE mdl_audidet.idaud='1' and mdl_audidet.idpunto=mdl_punto.idpunto and mdl_audidet.idtipoaud='1' AND
mdl_pilar.idpilar=(SELECT mdl_pilar.idpilar FROM mdl_pilar WHERE mdl_punto.idpilar=mdl_pilar.idpilar);
非常感谢您的帮助,谢谢。
这是一个更简洁的查询版本
SELECT pi.nombrepil,
pu.texto AS pregunta,
a.texto AS comentario,
a.resultado
FROM mdl_audidet a
JOIN mdl_punto pu ON pu.idpunto = a.idpunto
JOIN mdl_pilar pi ON pi.idpilar = pu.idpilar
WHERE a.idaud = '1'
AND a.idtipoaud = '1'
在 Moodle 中你会使用这样的东西
$sql = "SELECT pi.nombrepil,
pu.texto AS pregunta,
a.texto AS comentario,
a.resultado
FROM {audidet} a
JOIN {punto} pu ON pu.idpunto = a.idpunto
JOIN {pilar} pi ON pi.idpilar = pu.idpilar
WHERE a.idaud = :idaud
AND a.idtipoaud = :idtipoaud";
$params = array('idaud' => '1', 'idtipoaud' => '1');
$records = $DB->get_records_sql($sql, $params);
或者如果您希望获得单一结果,请使用此选项:
$record = $DB->get_record_sql($sql, $params);
你好,我有这个问题,我不知道如何在 moodle 上创建复杂的查询,我阅读了有关数据操作的文档,但对我没有任何帮助。
这是我要获取的查询:
SELECT mdl_pilar.nombrepil, mdl_punto.texto as pregunta, mdl_audidet.texto as comentario, mdl_audidet.resultado
FROM mdl_audidet, mdl_pilar, mdl_punto
WHERE mdl_audidet.idaud='1' and mdl_audidet.idpunto=mdl_punto.idpunto and mdl_audidet.idtipoaud='1' AND
mdl_pilar.idpilar=(SELECT mdl_pilar.idpilar FROM mdl_pilar WHERE mdl_punto.idpilar=mdl_pilar.idpilar);
非常感谢您的帮助,谢谢。
这是一个更简洁的查询版本
SELECT pi.nombrepil,
pu.texto AS pregunta,
a.texto AS comentario,
a.resultado
FROM mdl_audidet a
JOIN mdl_punto pu ON pu.idpunto = a.idpunto
JOIN mdl_pilar pi ON pi.idpilar = pu.idpilar
WHERE a.idaud = '1'
AND a.idtipoaud = '1'
在 Moodle 中你会使用这样的东西
$sql = "SELECT pi.nombrepil,
pu.texto AS pregunta,
a.texto AS comentario,
a.resultado
FROM {audidet} a
JOIN {punto} pu ON pu.idpunto = a.idpunto
JOIN {pilar} pi ON pi.idpilar = pu.idpilar
WHERE a.idaud = :idaud
AND a.idtipoaud = :idtipoaud";
$params = array('idaud' => '1', 'idtipoaud' => '1');
$records = $DB->get_records_sql($sql, $params);
或者如果您希望获得单一结果,请使用此选项:
$record = $DB->get_record_sql($sql, $params);