2009-11-03 59 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。然後,再爲作者做同樣的事情。