SELECT `a`.*
FROM `articles` AS `a`
JOIN (
SELECT GROUP_CONCAT(DISTINCT `tag_id` ORDER BY `tag_id`) AS `tags`
FROM `articleTags`
WHERE `article_id` = :articleId
) AS `at`
JOIN (
SELECT GROUP_CONCAT(DISTINCT `tag_id` ORDER BY `tag_id`) AS `tags`, `article_id`
FROM `articleTags`
GROUP BY `article_id`
) AS `st` ON `st`.`article_id` = `a`.`id` AND `st`.`tags` = `at`.`tags`
SELECT `t1`.`name`, `t2`.`name`, COUNT(*) AS `count`
FROM `teacher` AS `t1`
JOIN (
SELECT DISTINCT `teacher_id`, `student_id`
FROM `teacher_student`
) AS `s1` ON `s`.`teacher_id` = `t1`.`id`
JOIN (
SELECT DISTINCT `teacher_id`, `student_id`
FROM `teacher_student`
) AS `s2` ON `s2`.`student_id` = `s1`.`student_id` AND `s2`.`teacher_id` > `s1`.`teacher_id`
JOIN `teacher` AS `t2` ON `t2`.`id` = `s2`.`teacher_id`
GROUP BY `t1`.`id`, `t2`.`id`
ORDER BY `count`
LIMIT 1
BIT_COUNT(HEX(:value1) ^ HEX(:value2))
UPDATE `address` AS `a1`
JOIN (
SELECT MIN(`id`) AS `id` FROM `address` GROUP BY `organizationfk`
) AS `a2` ON `a2`.`id` = `a1`.`id`
LEFT JOIN (
SELECT `organizationfk` FROM `address` WHERE `primary` = 1
) AS `a3` ON `a3`.`organizationfk` = `a1`.`organizationfk`
SET `a1`.`primary` = 1
WHERE `a3`.`organizationfk` IS NULL