Drupal db_query获取所有行

时间:2013-04-16 16:52:25

标签: drupal drupal-modules

我开始为D​​rupal构建主题。

我对drupal查询有疑问,但我没有找到任何答案......

我的一个模块中有一个db_query,但只返回几行(总共有13行,表有20行)如何从一个表中选择所有行?

我的查询就像这样

$result = db_query("SELECT * FROM bv_calendar c INNER JOIN bv_countries p ON c.country_id = p.country_id INNER JOIN bv_vaccinate v ON c.vaccinate_id = v.vaccinate_id ORDER BY $orderby ASC");

while ($class = $result->fetchAssoc()) {
    $classes[$class["calendar_id"]] = $class;
}

如何获取所有行?

谢谢

1 个答案:

答案 0 :(得分:2)

从它的外观来看,我说你没有从* bv_calendar *中获取所有行,因为你在SQL查询中使用 INNER JOIN ,这需要匹配记录你的* bv_countries *和* bv_vaccinate *表。

尝试将 INNER JOIN 替换为 LEFT JOIN ,如后面的“”如果ON或USING部分中的右表没有匹配的行LEFT JOIN,所有列设置为NULL的行用于右表。“来自http://dev.mysql.com/doc/refman/5.0/en/join.html

如果这是你想要的结果,那么你的SQL查询应该是:

SELECT * FROM bv_calendar c LEFT JOIN bv_countries p ON c.country_id = p.country_id LEFT JOIN bv_vaccinate v ON c.vaccinate_id = v.vaccinate_id ORDER BY $orderby ASC