-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`";

どんな助けでもいただければ幸いです

これが私が達成しようとしていることだと思います:

ビュー=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
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

リードテーブルに、応募者テーブル(外部キー)に結合する列が必要です。たとえば、leadsテーブルにapplication_id列があり、applicantsテーブルの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;

PHPスクリプトで動的にビューを作成するのではなく、データベースにビューを作成します(phpMyAdminまたはそのようなツールを使用)。

次に、PHPスクリプトは、ビューをテーブルであるかのようにクエリできます。

$sql = "SELECT * FROM filter WHERE " . $filterTerms . "AND lead_status = '1' ORDER BY lead_added";
于 2012-07-06T13:16:01.530 に答える