我开始为Drupal构建主题。
我对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;
}
如何获取所有行?
谢谢
答案 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