从PHP检索MYSQL Join值

时间:2009-11-03 11:03:08

标签: php sql mysql left-join

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

是否有任何方法可以在查询中分隔这两列?

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

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

作者 id,姓名,日期

当我加入这两个时,我得到一张带有类似“名字”列的表。

无论如何要将两个表分开,以便作者表前面有一个前缀?例如。 authors_name / authors _ *

3 个答案:

答案 0 :(得分: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或Name。

希望它对你有所帮助。

答案 1 :(得分:1)

是的!

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

你有它。所有领域加两个额外的! ;)

希望它有所帮助。

答案 2 :(得分:0)

很抱歉,您无法在字段级别上真正做前缀,但如果您可以调用2个查询,请使用

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

结果集只包含故事字段,您可以像使用php一样使用字段。然后再对作者再做一次。