1

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

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

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

表格故事 ID、名称、内容、日期

作者 ID、姓名、日期

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

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

4

3 回答 3

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。

希望它可以帮助你。

于 2009-11-03T11:05:24.050 回答
1

就在这里!

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

你有它。所有字段加上两个额外的!;)

希望能帮助到你。

于 2009-11-03T11:06:23.033 回答
0

抱歉,您不能真正在字段级别上添加前缀,但如果您可以调用 2 个查询,只需使用

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

结果集将仅包含故事字段,您可以像通常使用 php 一样使用这些字段。然后对作者再次做同样的事情。

于 2009-11-03T13:33:06.827 回答