2009-11-03 65 views
1

我有两个或多个表保存在同一列名下的值。现在,当我加入这两个表时,列名保持不变。当以PHP($ row ['name'])检索这些值时,我遇到了问题,因为列'name'被使用了两次。检索MYSQL从PHP加入值

是否有任何可能的方法来分隔查询内的这两列?

SELECT * 
    FROM stories s 
    JOIN authors a ON a.id = s.authorid 

故事 ID,名称,内容,日期

作者 ID,姓名,日期

当我加入这两个我得到一个表具有类似的“名称”列。

无论如何分开这两个表,所以作者表前面有一个前缀?例如。 authors_name/authors_ *

回答

5

是的,改变你的SQL是这样的:

SELECT 
    s.Id as StoryId, 
    s.Name as StoryName, 
    a.Id as AuthorId, 
    a.Name as AthorName, 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

然后在PHP中,使用StoryId,StoryName,AUTHORID和AthorName而不是ID或名称。

希望它可以帮助你。

+0

谢谢,这应该做的伎俩,但我希望我可以添加一个前缀,会自动添加像authors_ * – SyntaxError 2009-11-03 11:07:44

+0

东西不幸它看起来像没有自动前缀。如果这个答案没问题,不要忘记'接受'它:p – 2009-11-03 11:11:08

1

是的!

SELECT *, stories.name AS s_name, authors.name AS a_name 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

而且你有它。所有领域加上两个额外! ;)

希望它有帮助。

+0

谢谢!我感谢你的回复。因为我是SO的新手,所以我会单独给所有人添加感谢信。 – SyntaxError 2009-11-03 11:09:14

0

抱歉,您不能真的前缀在现场级,但如果你可以调用2个查询,只需使用

SELECT s.* 
FROM stories s 
JOIN authors a ON a.id = s.authorid 

结果集将只包含故事字段,你可以使用的字段,你通常会用php。然后,再为作者做同样的事情。