[英]SQL SELECT statement - same column names
想象一下,我有以下SELECT
語句,它已被過度簡化。
SELECT a.Name, b.Name FROM table a LEFT JOIN table b ON a.ID=b.TID
使用PHP我運行以下:
while ($result = mysql_fetch_array($results)) {
echo $result["Name"];
}
這會給我b.Name
的結果。 我知道我可以使用a.Name AS aName, B.Name AS bName
但是這有時可能會使您有長查詢並且使用a.*
復雜化。 我嘗試使用$result["a.Name"]
但它不起作用。 我知道這有效$result[0]
但是如果沒有復雜化的話,這並不總是可行的。
有沒有其他方法可以展示a.Name
請?
簡單回答:沒有。
答案很長:PHP的數組索引必須是唯一的。 這樣,最后一個類似名稱列將獲得優先權。
如果結果的兩列或更多列具有相同的字段名稱,則最后一列將優先。 要訪問同名的其他列,必須使用列的數字索引或為列創建別名。 對於別名列,您無法使用原始列名訪問內容。
但是,您可以使用別名來解決此問題。
SELECT a.Name as aName, b.Name as bName FROM table a LEFT JOIN table b ON a.ID=b.TID
然后你可以使用$result["aName"]
和$result["bName"]
訪問兩個表中的名稱
根據您的要求,您可以考慮將查詢划分為兩個提取語句。 這將允許您具有重復的列名稱。
SELECT a.* FROM table a LEFT JOIN table b ON a.ID=b.TID
SELECT b.* FROM table b LEFT JOIN table a ON a.ID=b.TID
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.