sqlite 我如何获取分配给今天有截止日期的特定用户的任务?

lg40wkob  于 2022-11-15  发布在  SQLite
关注(0)|答案(1)|浏览(164)

task_list表:

CREATE TABLE "task_list" (
    "task_id"   INTEGER NOT NULL,
    "task_code" TEXT NOT NULL,
    "title" TEXT NOT NULL,
    "description"   TEXT NOT NULL,
    "department_id" INTEGER NOT NULL,
    "employee_id"   INTEGER,
    "status"    INTEGER NOT NULL DEFAULT 1,
    "date_created"  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "date_updated"  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "date"  TEXT,
    PRIMARY KEY("task_id" AUTOINCREMENT),
    FOREIGN KEY("employee_id") REFERENCES "employee_list"("employee_id") on DELETE SET NULL,
    FOREIGN KEY("department_id") REFERENCES "department_list"("department_id") on DELETE CASCADE
);

task_assignees表:

CREATE TABLE "task_assignees" (
    "task_id"   INTEGER NOT NULL,
    "employee_id"   INTEGER NOT NULL,
    FOREIGN KEY("task_id") REFERENCES "task_list"("task_id") on DELETE CASCADE,
    FOREIGN KEY("employee_id") REFERENCES "employee_list"("employee_id") on DELETE CASCADE
);

employee_table

CREATE TABLE "employee_list" (
    "employee_id"   INTEGER NOT NULL,
    "employee_code" INTEGER NOT NULL,
    "fullname"  INTEGER NOT NULL,
    "email" TEXT NOT NULL,
    "password"  TEXT NOT NULL,
    "gender"    TEXT NOT NULL,
    "dob"   DATE NOT NULL,
    "contact"   TEXT NOT NULL,
    "address"   TEXT NOT NULL,
    "department_id" INTEGER NOT NULL,
    "type"  TEXT NOT NULL,
    "status"    INTEGER NOT NULL DEFAULT 1,
    "date_created"  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "date_updated"  TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY("department_id") REFERENCES "department_list"("department_id") on DELETE CASCADE,
    PRIMARY KEY("employee_id" AUTOINCREMENT)
);

获取分配给特定用户的任务的查询:

"SELECT * FROM `task_list` where task_id in (SELECT task_id FROM `task_assignees` where employee_id = '{$_SESSION['employee_id']}') order by strftime('%s',date_created) desc";

查询今天有截止日期的任务:

"SELECT * FROM `task_list` where DATE(`date`) = DATE('now') ";

我想联接这两个查询,这样我就可以获取分配给其会话处于活动状态且截止日期为今天的用户的任务列表。

<?php 
    $sql = "SELECT * 
            FROM task_list 
            where task_id 
                in (SELECT task_id 
                    FROM task_assignees 
                    where employee_id = '{$_SESSION['employee_id']}'
                    ) 
            AND (DATE(date)=DATE(now))"; 

    $qry = $conn->query($sql); 
    $i = 1; 
    while($row = $qry->fetchArray()): 
?>
a11xaf1n

a11xaf1n1#

表名和属性不使用引号(``&‘)。以下是正确的代码:

<?php 
  $sql = "SELECT * FROM `task_list` where task_id in (SELECT task_id FROM `task_assignees` where employee_id = '{$_SESSION['employee_id']}') AND (DATE(`date`)=DATE('now')) order by strftime('%s',date_created) desc";
$qry = $conn->query($sql); 
$i = 1; 
while($row = $qry->fetchArray()): ?>

相关问题