select * from
(
select to_char(time, 'YYYY.MM.DD HH24:MI') time_round_minute, count(distinct userId) cnt
from log_table
group by to_char(time, 'YYYY.MM.DD HH24:MI')
)
order by cnt desc
select distinct t1.session_id, t1.action
from table t1
join table t2 on t1.session_id = t2.session_id
where t1.action in ('вход', 'переход на страницу 1', 'переход на страницу 2', 'целевое действие')
and t2.action not in (перечень того, что не должно быть точно)
select t1.session_id, t1.action
from table t1
where t1.action in ('вход', 'переход на страницу 1', 'переход на страницу 2', 'целевое действие')
and not exists(select 1 from table t2 where t1.session_id = t2.session_id and t2.action in (перечень того, что не должно быть точно))
SELECT distinct a.id, a.rank, a.firstname, a.name,
a.secondname, b.table1id
FROM table1 as a
left JOIN table2 as b on b.table1id = a.id and b.dateto < ?
SELECT a.id, a.rank, a.firstname, a.name,
a.secondname, (select count(*) from table2 as b on b.table1id = a.id and b.dateto < ? and rownum = 1) cnt
FROM table1 as a
SELECT a.id, a.rank, a.firstname, a.name,
a.secondname, exists(select 1 from table2 as b on b.table1id = a.id and b.dateto < ?) as is_exists
FROM table1 as a
var item_count = array.length; // считаем заранее кол-во
for(var i = 0; i < item_count; i++)
{
var item = array[i]; // вытаскиваем ссылку на элемент для простоты доступа
...
}
select ext.*
from ext
where
exists (select 1 from t as t1
join t as t2 on t1.field_id = t2.field_id
where t1.field_id = ext.f1
and t1.value_id = v1
and t2.value_id = v2 )
and exists (select 1 from t as t1
join t as t2 on t1.field_id = t2.field_id
where t1.field_id = ext.f2
and t1.value_id = v3
and t2.value_id = v4 )
Пробовал через join, но получается множество дублей задач, так как призов к одной задаче множество.
select task_id, ......, prize_id, .......
from (сложный join)
$out = [];
foreach($rows as $row)
{
$task = &$out[row['task_id']];
$task['id'] = row['task_id'];
$task['name'] = row['name_task'];
.... // другие свойства задачи
if(!array_key_exists('prizes', $task))
{
$task['prizes'] = [];
}
if(!is_null($row['prize_id']))
{
$prize = &$task['prizes'][$row['prize_id']];
$prize['id'] = $row['prize_id'];
..... // другие свойства приза
unset($prize);
}
unset($task);
}
var_dump($out);
SELECT du.*, (
SELECT COUNT(dm."receiverRead") "unreadMessages"
FROM dialogs_messages dm
WHERE
dm."dialogId" = du."dialogId"
AND dm."receiverRead" = false
AND dm."senderUserId" NOT IN ('69e56a68-edbd-4f8b-8ccd-cb8031c5c865')
AND dm.id NOT IN (
SELECT dmd."messageId" FROM dialogs_messages_deleted dmd
WHERE dmd."userId" = '69e56a68-edbd-4f8b-8ccd-cb8031c5c865'
)
GROUP BY dm."receiverRead"
)
FROM (
SELECT
DISTINCT ON (du."dialogId") du."dialogId",
SUBSTRING(dm."message", 1, 60),
du."joinedDateTime",
users."avatarUrl",
users.username
FROM dialogs_users du
LEFT JOIN dialogs_messages dm ON dm."dialogId" = du."dialogId"
LEFT JOIN users on users.id = dm."senderUserId"
WHERE
du."userId" = '69e56a68-edbd-4f8b-8ccd-cb8031c5c865'
AND dm.id NOT IN (
SELECT dmd."messageId" FROM dialogs_messages_deleted dmd
WHERE dmd."userId" = '69e56a68-edbd-4f8b-8ccd-cb8031c5c865'
)
ORDER BY du."dialogId", dm."message" DESC
) du
ORDER BY du."joinedDateTime" DESC;
PDO не использует абстрактные слои для подключения к БД, наподобие ODBC, а использует для разных БД их «родные» драйверы, что позволяет добиться высокой производительности. В настоящее время для PDO существуют драйверы практически ко всем общеизвестным СУБД и интерфейсам. Также PDO позволяет работать одновременно с несколькими базами данных.
но может быть есть уже готовая библиотека которая позволяет с выбранных строк отправить данные на сервер для их удаления,
P.S. еще одна проблема заключается в том что все примеры Datatables используют на стороне сервера PHP, который я не использую да и к тому же не знаю.
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!A$1:A$99;НАИМЕНЬШИЙ(ЕСЛИ(Лист1!A$1:A$99<>"";СТРОКА(Лист1!A$1:A$99));СТРОКА(B1)));"")