Staram się produkować ten SQL ze śliskiego 1.0.0:Jak napisać zagnieżdżone zapytania w klauzuli SELECT
select
cat.categoryId,
cat.title,
(
select
count(product.productId)
from
products product
right join products_categories productCategory on productCategory.productId = product.productId
right join categories c on c.categoryId = productCategory.categoryId
where
c.leftValue >= cat.leftValue and
c.rightValue <= cat.rightValue
) as productCount
from
categories cat
where
cat.parentCategoryId = 2;
Moja najbardziej udana próba jest (rzuciłem „łączy” część, więc jest to bardziej czytelne):
def subQuery(c: CategoriesTable.type) = (for {
p <- ProductsTable
} yield(p.id.count))
for {
c <- CategoriesTable
if (c.parentId === 2)
} yield(c.id, c.title, (subQuery(c).asColumn))
która produkuje SQL brakuje nawiasu w podzapytaniu:
select
x2.categoryId,
x2.title,
select count(x3.productId) from products x3
from
categories x2
where x2.parentCategoryId = 2
co jest oczywiście nieprawidłowy SQL Czy myślisz o tym, aby SLICK umieścił te nawiasy we właściwym miejscu? A może jest inny sposób, aby to osiągnąć?
można dodawać obok swoich prób? –
Napisałem, co mam do tej pory – wassertim
To wygląda jak błąd/niedopatrzenie w kompilatorze zapytań do mnie. Może powinieneś złożyć raport o błędzie. –