-2

task_list table :

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 table :

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)
);

Query to fetch the task assigned to a particular user :

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

Query for the task which having deadline today :

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

I want to join both queries so I can fetch the list of tasks assigned to the user whose session is active and has the deadline today.

<?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()): 
?>
user4157124
  • 2,809
  • 13
  • 27
  • 42

1 Answers1

1

Not using quotes like (`` & '') for table name & attributes. Here is the correct code:

<?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()): ?>