UPDATE /* */ SET `id` = LAST_INSERT_ID(`id`), /* */
SELECT
`some_table`.*
FROM
`some_table`
LEFT JOIN `other_table` ON (`other_table`.`id`=`some_table`.`id`)
WHERE
`other_table`.`id` IS NULL
Проблема в том, что число записей около 1 миллиона в каждой таблице :(
SET NAMES 'utf8'; #явно задать кодировку для данного подключения
CREATE TABLE `#table` (
`org_code` bigint(20) unsigned,
`title` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL #явно задать кодировку для столбца
) CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; #явно задать кодировку для таблицы
/* Остальное аналогично */
Author::find()
->joinWith('prcid') // перенес в начало, чтобы не было иллюзии, что второй 'where' как-то влияет на связь с этой таблицей
->where(['type_company'=>1,'type'=>2])
->andWhere(['id_company'=>$id]) // изменил 'where'на 'andWhere', чтобы отработали оба условия
->asArray()
->all();
Запрос должен доставать видео у которых category1 и category2 совпадает с категорией видео у которого id=100, типа похожие видео
SELECT
`video`.*
FROM `video`
WHERE
(
`video`.`category1` IN (SELECT category1 FROM `video` WHERE `id`='1' UNION SELECT category2 FROM `video` WHERE `id`='1')
OR `video`.`category2` IN (SELECT category1 FROM `video` WHERE `id`='1' UNION SELECT category2 FROM `video` WHERE `id`='1')
)
AND `video`.`id` != '1'
INSERT INTO ... ON DUPLICATE KEY UPDATE
SELECT
`_posts`.`post_id`,
COUNT(`_Likes`.`id`) AS 'likes_quantity'
FROM
`_posts`
JOIN `_Likes` ON (`_Likes`.`post_id`=`_posts`.`post_id`)
GROUP BY `_posts`.`post_id`
HAVING COUNT(`_Likes`.`id`) > 10
Все бы хорошо, но дополнительно нужно иметь возможность сортировать теги/страницы по дате создания их связи
Но это менее удобно, и не получится работать с ORM, в данном случае Kohana ORM
SELECT `year`, `on` FROM `table` WHERE `on`=1
UNION
SELECT `year`, '0' FROM `table` WHERE `on`=1
INSERT INTO `table` (`year`, `on`)
SELECT `inner`.`year`, '0' FROM (
SELECT * FROM `table` WHERE `on`=1
) AS `inner`
надо будет использовать Left Join, что достаточно тяжело для БД (на сколько я понимаю)
Стоит ли делать, например, отдельную таблицу с сообщениями и отдельную таблицу для связывания сообщения с пользователем (в итоге 3 таблицы)?