簡體   English   中英

SQL SELECT語句 - 相同的列名

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM