-1

我正在尝试将一个表中的一些列合并到一个包含另一个表中所有数据的视图中。到目前为止,我失败了,这是我到目前为止所拥有的:

$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
4

2 回答 2

1

根据更新的信息,您需要一个 UNION:

select email, name, appdate from table1
UNION
select s_email as email, s_name as name, s_appdate as appdate from table2
于 2012-07-06T14:15:34.570 回答
0

您需要在潜在客户表中有一列将其连接到申请者表(外键)。例如,如果潜在客户表中的 application_id 列与申请人表中的申请人 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";
于 2012-07-06T13:16:01.530 回答