2011-05-20 92 views
2

在MySQL中,我加入了兩個表,它們都有一個名爲'Name'的列。在PHP我寫檢索列的值,並將其存儲在變量的腳本:在PHP中連接具有相同名稱列的表時出現問題

$row = mysql_fetch_array($result); 

$table1name = $row['Name']; 
$table2Name = $row['Name']; 

當然變量不會給2列的值,但他們都將給予來自相同的值第二個表的列。有沒有辦法在不更改數據庫中列的名稱的情況下檢索兩列的不同值?

+0

你的查詢是什麼樣子? – Problematic 2011-05-20 22:03:04

+0

請注意,雖然您應該使用別名,但這比使用PHP的mysql_fetch_array()更多。 – 2011-05-20 22:08:22

+0

這是一個SQL問題(通過使用別名解決),而不是PHP問題... – dm76 2011-05-31 09:44:36

回答

13

您需要在MySQL

SELECT table1.name AS name1 
8

是使用別名。在您的SQL查詢中使用AS關鍵字來指定所需的別名。

例子:

SELECT `tbl_1`.`field` AS `tbl_1_field`, `tbl_2`.`field` AS `tbl_2_field` FROM.... 

反引號不是必需的,這是我剛剛學會了如何SQL

+0

'AS'不需要定義別名,但它確實使它更加明顯 – 2011-05-20 22:06:31

+0

關鍵字AS也是可選的,至少在MySQL中。 – Arjan 2011-05-20 22:06:52

+0

我想我每天都會學到新的東西。 – kstev 2011-05-20 22:08:00

0

您可以在MySQL查詢與表預選賽,如tablea.id和表B中引用它們。 ID,如果你需要兩個ID在結果中,你可以做select tablea.id id1,tableb.id id2等

+0

表別名不會解決問題,只有列別名會 – 2011-05-20 22:07:31

+0

我沒有說別名別名,我展示瞭如何別名特定的字段。我提到了表限定符引用它們,然後別名它們 – BugFinder 2011-05-20 22:09:23

相關問題