我有一个我们在数据库中使用的表列表,用于存储在其自己的数据库中的产品。我使用此代码设置了一组“表格”。
$TABLES_QUERY = $db1q->query("SELECT t.table FROM Product_Tables as t WHERE t.visibility = 1 ORDER BY t.sort_order ASC") or die ('Unable to execute query. '. mysqli_error($db1q));
if ($TABLES_QUERY->num_rows > 0) {
while ($TABLES = $TABLES_QUERY->fetch_assoc()) {
$query_tables_array[] = $TABLES['table'];
}
}
我试图在我们的库存系统中做的是从正确的表中提取数据,而不必写出每个表,并且每个表都有一个唯一的表别名。这意味着每次创建新的产品表时,都必须更新代码。我宁愿将该表添加到表数据库中,并且代码仍然有效....
下面是我试图使用的代码......
if (!empty($query_tables_array)) {
foreach ($query_tables_array as $val) {
$SKU_QUERY .= " LEFT JOIN ". $val ." as ptbl ON
(s.product_table='". $val ."' and ptbl.id = s.part_number_id)";
}
}
有条件应用于表,所以只应调用一个,但它抛出错误
不是唯一的表/别名:'ptbl'
有没有正确的方法可以做到这一点?
我在 SELECT 查询中使用 ptbl 从 LEFT JOIN'D 表中获取数据,因此如果有办法,我希望能够像我尝试的方式那样执行此操作。
这可能很令人困惑,所以如果您有任何其他问题,请告诉我。
喵喵时光机