2013-12-19 59 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