$query='SELECT * FROM #__virtuemart_products as a
LEFT JOIN #__virtuemart_products_en_gb as b ON a.virtuemart_product_id = b.virtuemart_product_id
INNER JOIN #__virtuemart_product_categories as c ON a.virtuemart_product_id=c.virtuemart_product_id
INNER JOIN #__virtuemart_categories_en_gb as d ON c.virtuemart_category_id = d.virtuemart_category_id
WHERE b.slug LIKE "'.$current.'%" AND a.product_parent_id = 0
AND d.category_name="'.$query_title.'"' ;
$db->setQuery($query);
$options=$db->loadObjectList();
这是我用来解析我的数据库中的某些产品的查询。问题是: 表:virtuemart_products_en_gb有一个名为slug的列 表:virtuemart_categories_en_gb还有一个名为slug
的列当我使用$ row-> slug时,它解析了virtuemart_categories_en_gb slug。
所以在var_dumped对象列表之后,我看到只有一个名为slug的collumn。我在phpmyadmin中使用相同的查询后,它返回2个名为slug的列。
我想我可以解决这个问题,选择每个单独的记录,并将第一个slug设置为slug1,将第二个slug设置为slug2。
例如:SELECT id,username,password,b.slug as slug1,c.slug as slug2
等
有没有更好的方法?因为我需要解析很多字段,这会使查询真的很大。为什么php查询只返回1个名为slug的字段而phpmyadmin返回两个em?
提前谢谢。
答案 0 :(得分:1)
您可以在选择具有相同名称的列后指定*
。例如,
SELECT *, b.slug as slug1,c.slug as slug2
FROM #__virtuemart_products as a
LEFT JOIN #__virtuemart_products_en_gb as b ON a.virtuemart_product_id = b.virtuemart_product_id
INNER JOIN #__virtuemart_product_categories as c ON a.virtuemart_product_id=c.virtuemart_product_id
INNER JOIN #__virtuemart_categories_en_gb as d ON c.virtuemart_category_id = d.virtuemart_category_id
WHERE b.slug LIKE "'.$current.'%" AND a.product_parent_id = 0
AND d.category_name="'.$query_title.'"