2009-09-23 123 views
0

我使用下面的SQL查詢:從表中選擇特定的字段?

Select * from table1 as t1, table2 as t2 where t1.id = t2.col 

但我的問題是,無論是表中存在具有相同的名稱,place領域。 那麼如何在我的PHP代碼中選擇table2的名稱爲place的列呢? 我想用下面的PHP代碼

while($row_records = mysql_fetch_array($result_records)) 
    { 

      <? echo $row_records['place']; ?> 

    } 

我如何可以獲取從特定的表中的字段?

+0

和零分的答案,零票! – 2009-09-23 10:32:38

+1

@OP - 如果你沒有自信/經驗來回答他人的問題,但至少有禮貌地提供有用的回答並選擇你認爲最有幫助的答案是可以的。目前,你只是簡單地偷看... – CJM 2009-09-23 11:12:50

+0

@所有有幫助的人:我很抱歉,因爲我沒有收到任何答覆。那是becoz我知道如何accpet它,我也不知道有一種方式,我可以。我剛剛發佈了一個關於如何接受答案的新問題,而且我並不認同答案和upvoting。 再次抱歉,謝謝。 – user156073 2009-09-23 12:38:18

回答

6

切勿使用選擇它...

Select * from ... 

... - 始終明確指定你想要返回哪些列。

因此,你可以修改你的SQL語句:

Select t1.Place as T1Place, t2.Place as T2Place 
    from table1 as t1, table2 as t2 where t1.id = t2.col 

所以,在你的PHP你會:

while($row_records = mysql_fetch_array($result_records)) 
{ 

     <? echo $row_records['T2Place']; ?> 

} 
+0

對於'SELECT *'的評論+1 – 2009-09-23 10:31:11

+1

「從不」有點強烈。 – hop 2009-09-23 10:32:36

+1

對於動態語言來說,它可能更不重要;它與COBOL等語言密切相關,但建議仍然健全。假設表被修改爲添加3個額外的字段:圖片,影片剪輯和PDF文件。你的查詢不使用任何一個,但你的代碼現在支付傳輸3個可怕(多兆字節)字段值的代價只是爲了忽略它們。很有趣:用戶現在抱怨應用程序的性能。如果你沒有寫出懶惰的'SELECT *',那麼你就不會因爲不得不回頭修改你的懶惰代碼而感到尷尬。 – 2009-09-23 10:52:22

3

爲什麼不使用表別名和字段名稱。 例如,

Select t1.place as t1_place, t2.place as t2_place 
     from table1 as t1, table2 as t2 where t1.id = t2.col 

在你的PHP代碼,你可以在生產環境中使用

while($row_records = mysql_fetch_array($result_records)) 
    { 
    echo $row_records['t1_place']; 
    echo '<br />'; 
    echo $row_records['t2_place']; 
    } 
相關問題