加入在MySQL/PHP的两个查询
问题描述:
我需要一些帮助,这:加入在MySQL/PHP的两个查询
我做几个参数搜索:类别,日期(从),日期(到)
下面的代码:
if (count($categorias) > 0) {
for ($i = 0; $i < count($categorias); $i++) {
if ($i == 0) {
$query = "WHERE id_subcategoria = " . $categorias[$i] . " ";
} else {
$query .= " OR id_subcategoria = " . $categorias[$i] . " ";
}
}
} else {
$query = "";
}
if (!$sql = $db->sql_query("SELECT * FROM actividades $query ORDER BY id DESC LIMIT " . $pageLimit . "," . PAGE_PER_NO)) {
message_die("DS", TRUE);
}
$total = $db->sql_numrows($sql);
if ($total != 0) {
while ($linha = $db->sql_fetchrow($sql)) {
$SqlEstado = $db->sql_query("SELECT * FROM tarifas WHERE id_actividade = " . $linha['id'] . " AND dia = '$data_min'");
首先我得到的所有匹配的类别,然后我去到餐桌“tarifas”检查该产品是否可在当天预订的产品。
所以我的问题是:我可以在一个查询中做到这一切吗?选择产品,并且如果表格“tarifas”中存在规则,则获取该规则。
如果不够清楚,请让我知道,这样我可以用不同的方式揭露问题,我真的很困难。
答
是的,你在id列上执行JOIN。如果你只想要那些在“tarifas”中的产品,它将是一个INNER JOIN,如果你想要产品,即使它们不在“tarifas”中,它也将是“活动链接左连接tarifas ON ...”。
答
感谢您的帮助,user3038802!
这里的情况下,它可以帮助任何人以同样的问题代码:
if (!$sql = $db->sql_query("SELECT actividades.nome, actividades.id, actividades.dias, actividades.preco FROM actividades LEFT JOIN tarifas ON actividades.id = tarifas.id_actividade AND tarifas.dia = '$data_min' $query")) {
message_die("DS", TRUE);
}
添加您的数据库架构与您的问题 – 2014-09-03 16:32:41