2012-07-06 106 views
-1

我想将一个表中的某些列合并到一个包含所有其他表中的数据的视图中。到目前为止,我已经失败了,这里是我到目前为止有:将数据从2个表放入mysql视图

$create = "CREATE VIEW filter AS SELECT `".$db."`.`leads`.*, (`".$db."`.applicants.name AS lead_fname, `".$db."`.applicants.email AS lead_email, `".$db."`.applicants.appdate AS lead_added) FROM `".$db."`.`leads`, `".$db."`.`applicants` WHERE ".$filterTerms." AND `lead_status` = '1' ORDER BY `lead_added`"; 

任何帮助,将不胜感激

我觉得这就是我想实现:

查看=表1 +表2

ID | email | name | appdate 
1 data data data 
2 data data data 
3 data data data 
4 data data data 
5 data data data 

表1

ID | email | name | appdate 
    1 data data data 
    2 data data data 

表2

ID | s_email | s_name | s_appdate 
1 data  data data 
2 data  data data 
3 data  data data 
+8

如果有什么错误讯息? – Peon 2012-07-06 13:00:52

回答

1

基于更新后的信息,你想有一个UNION:

select email, name, appdate from table1 
UNION 
select s_email as email, s_name as name, s_appdate as appdate from table2 
+0

感谢您的帮助和对此混淆的道歉,mySQL让我难以理解! – jhodgson4 2012-07-06 14:25:28

0

您需要在导线表中的列加入它申请表(外键)。 例如,如果你在引线表中APPLICATION_ID列在申请表中的applicant_id列相匹配:

CREATE VIEW filter AS 
SELECT L.*, A.name as lead_fname, A.email as lead_email, A.appdate as lead_added 
FROM leads L, applications A 
WHERE L.application_id=A.applicant_id; 

您在数据库中创建的视图(使用phpMyAdmin或者类似的一些工具),而不是动态在你的PHP脚本中。

然后,您的PHP脚本可以查看视图,就好像它是一个表。

$sql = "SELECT * FROM filter WHERE " . $filterTerms . "AND lead_status = '1' ORDER BY lead_added"; 
+0

如果没有可用的连接,我可以在两者中选择所有数据,同时为我的视图添加别名?所有的列都是不同的名字。 – jhodgson4 2012-07-06 13:28:18

+0

你必须有一个列来加入表格。您如何知道申请人表中的哪个记录与潜在客户表中的记录一致? – 2012-07-06 13:53:51

+0

我想我正试图完成一些完全不同的事情。我想从table1中选择全部后,将table2添加到视图的末尾。表2然而有不同的列名从表1和视图 – jhodgson4 2012-07-06 14:02:58