我有两个或多个表,它们在同一列名下保存值。现在当我加入这两个表时,列名保持不变。在PHP中检索这些值时($ row ['name'])我遇到问题,因为列'name'被使用了两次。
是否有任何方法可以在查询中分隔这两列?
SELECT *
FROM stories s
JOIN authors a ON a.id = s.authorid
表 故事 id,名称,内容,日期
表 作者 id,姓名,日期
当我加入这两个时,我得到一张带有类似“名字”列的表。
无论如何要将两个表分开,以便作者表前面有一个前缀?例如。 authors_name / authors _ *
答案 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一样使用字段。然后再对作者再做一次。