我的SQL-Query正在覆盖具有相同名称的元素。但名称来自不同的表并具有不同的名称,例如[文章] [姓名],[公司] [姓名]。
我有这些表格。
1。)Shop_Articles_Category_Allocation 2.)投资组合 3.)文章 4.)公司 5.)类别
示例:
Shop_Category_Articles_Allocation
id | portfolio_id | article_id
Primary To Protfolio Articles
Portfolio
id | company_id | ....
To Company
Company
id | name | ...
Articles
id | name | ...
我的代码:
$em = $this->getDoctrine()->getManager();
$sql = "
SELECT *
FROM shop_cat_art_alloc scaa
INNER JOIN portfolio p ON scaa.article_id = p.article_id
INNER JOIN companies c ON p.company_id = c.id
INNER JOIN articles a ON scaa.article_id = a.id
WHERE scaa.shop_cat_id IN ($cat_id )
AND a.state_id = (:state_id)
AND p.state_id = (:state_id)
AND scaa.state_id = (:state_id)
AND c.state_id = (:state_id)
";
$stmt = $em->getConnection()->prepare($sql);
$stmt->bindParam(':state_id', $state_id);
$stmt->execute();
$result_articles = $stmt->fetchAll();
现在我得到一个积极的结果,但在这种情况下,公司的名称将被覆盖在数组中。我得到一个像这样的数组:
[id] => 1 [article_id] => 1 [name] => Chucks //this is the article name but there is no company name anymore.
如何进行查询,我也可以访问公司名称,仍然可以查看文章名称?
谢谢!
答案 0 :(得分:1)
使用别名,替换通配符*
并命名列并给出碰撞别名的列。
select user.name as username, account.name as accountname
from table
有关别名的更多信息: http://dev.mysql.com/doc/refman/4.1/en/identifiers.html