2013-12-19 93 views
0

我有兩個表具有相似的數據但列名完全不同。我做一個PHP頁面查詢,然後使用echo語句中的數據是這樣的:不同列名的MySQL JOIN

<?php echo($row['bedrooms']); ?> 

當前查詢看起來是這樣的:

$sql_query = "SELECT mls_number, city, list_price, bedrooms 
        FROM bonita_property_res 
        WHERE city = "Bonita" AND list_price >= 1500000 
        ORDER BY list_price DESC"; 

如何做一個加入一個表稱爲naples_property_res看起來像這樣,仍然能夠使用PHP回聲作爲它的配置?

MLSNumber  City  ListPrice  TotalBeds 
-------------------------------------------------- 
898989 | Bonita | 200000  | 4 
+0

你想同時列出_both_這些表中的記錄嗎?目前還不清楚聯合意圖是什麼。 –

+0

是的,@MichaelBerkowski我希望我可以做一些連接,然後使用相同的回聲,無論哪個表作爲數據本身是完全相同的。 –

+0

那就是'UNION',不是連接。但這意味着如果可以的話,你應該重新考慮你的模式。具有相同數據的兩個表格通常意味着您應該將它們合併到_one_表格中,並在列中標識它們所屬的類型。 –

回答

1

使用UNION:

SELECT mls_number, city, list_price, bedrooms FROM bonita_property_res WHERE ... 
UNION 
SELECT MLSNumber AS mls_number, City AS city, ListPrice AS list_price, TotalBeds AS bedrooms FROM naples_property_res WHERE ... 

列別名 - 這是AS something_else - 保證你不會在PHP中破壞任何引用,例如$行[ '臥室']。

+0

謝謝@dave!巨大的幫助! –

1

它聽起來並不像你想使用JOIN,而是UNION

SELECT fields FROM bonita_property_res WHERE conditions 
UNION SELECT fields FROM naples_property_res WHERE conditions 
1

但你也沒有告訴我們什麼是「完全不同的列名」是,但它會是這個樣子:

SELECT mls_number, city, list_price, bedrooms 
FROM bonita_property_res 
WHERE city = "Bonita" AND list_price >= 1500000 
ORDER BY list_price DESC 
UNION 
SELECT entirely, different, column, names 
FROM naples_property_res 
WHERE ...... 
1

你可以使用ALIAS到列。

$sql_query = "SELECT colA AS mls_number, colB AS city, colC AS list_price, 
        colD AS bedrooms FROM naples_property_res WHERE ..."; 

並製作一個UNION