Sunday 23 February 2014

SQL Queries - Delete, Insert & Trigger

Delete from multi table - Interconnect:

DELETE a.*, b.*, qz.*
FROM tbl_question a
LEFT JOIN tbl_answer b ON b.question_id = a.id
LEFT JOIN tbl_question_quiz as qz ON qz.question_id=a.id
WHERE a.id = 13 and qz.quiz_id=15

Insert Answer in 'tbl_answer' table:

INSERT INTO tbl_answer
(question_id, title, is_correct)
SELECT '32' AS question_id,title,is_correct FROM tbl_answer WHERE question_id=1

Trigger:

$trigger_chk = mysql_query('SELECT COUNT(*) as chk_row FROM information_schema.triggers WHERE trigger_name="before1_quiz_delete";',$j4g_db);
 
$t_chk = @mysql_fetch_assoc($trigger_chk);
 
if ($t_chk['chk_row'] == 0) {
 
  $trigger_query = "
    CREATE TRIGGER `before_quiz_delete` BEFORE DELETE ON `tbl_quiz` FOR EACH ROW
    DELETE qq, q, qu, a FROM tbl_question_quiz AS qq
    LEFT JOIN tbl_question AS q ON q.id=qq.question_id
    LEFT JOIN tbl_answer AS a ON a.question_id=qq.question_id
    LEFT JOIN tbl_quiz_user AS qu ON qu.quiz_id = qq.quiz_id
    WHERE qq.quiz_id = OLD.id;";
 
    mysql_query($trigger_query,$j4g_db);
}

Yii Interview Question