我正在尝试将一个表中的某些列合并到包含另一个表中所有数据的视图中。到目前为止,我失败了,这是我到目前为止所做的:
$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`";
任何帮助将不胜感激
我认为这就是我想要实现的目标:
查看= table1 + table2
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
答案 0 :(得分:1)
根据更新的信息,您需要一个UNION:
select email, name, appdate from table1
UNION
select s_email as email, s_name as name, s_appdate as appdate from table2
答案 1 :(得分: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";