Как добавить таблицы в предложение from? - PullRequest
0 голосов
/ 09 мая 2020

У меня есть сценарий, в котором мне нужно более одной таблицы в моем предложении from, но нет поля для объединения двух таблиц, поэтому мне не нужно соединение. По сути, я хочу, чтобы мой запрос SQL выглядел так:

SELECT 
cg.id, cg.effective_date 
FROM 
"user" u, community_guidelines cg 
WHERE 
u.id = 1 AND 
u.guidelines_accepted_date < cg.effective_date

Я пытался заставить это работать в коде, но безуспешно. Есть ли способ явно добавить таблицу в предложение from моего запроса?

CommunityGuidelinesTable
            .select { (UserTable.id eq userId) and
                    (UserTable.guidelinesAcceptedDate less CommunityGuidelinesTable.effectiveDate) }
            .orderBy(CommunityGuidelinesTable.effectiveDate to SortOrder.DESC)
            .mapNotNull {
                it.toCommunityGuidelines()
            }
            .firstOrNull()

1 Ответ

1 голос
/ 09 мая 2020

Хорошо, думаю, я понял это. Совсем не то, что я ожидал.

CommunityGuidelinesTable
            .join(UserTable, JoinType.INNER, additionalConstraint = { UserTable.id eq userId })
            .slice(CommunityGuidelinesTable.id, CommunityGuidelinesTable.effectiveDate, CommunityGuidelinesTable.guidelinesText)
            .select {
                    (UserTable.guidelinesAcceptedDate less CommunityGuidelinesTable.effectiveDate) }
            .orderBy(CommunityGuidelinesTable.effectiveDate to SortOrder.DESC)
            .mapNotNull {
                it.toCommunityGuidelines()
            }
            .firstOrNull()

Я получил вдохновение из этого сообщения в блоге https://blog.jdriven.com/2019/07/kotlin-exposed-a-lightweight-sql-library/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...