![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Mam dwie tabele: crew oraz crew_player. Player jest przypisany do Crew poprzez ID, a Crew należy do jakiegoś użytkownika. Potrzebuję wykonać poniższe zapytanie SQL za pomocą Doctrine, jednak nie zadziała to bez zrobienia relacji w encjach. A jeśli zrobię relacje, to Doctrine pobierze mi niepotrzebnie rekord z tabeli crew, który jest mi niepotrzebny. Jak w takim razie można to obejść, bym mógł pobrać tylko rekord z tabeli crew_player?
(zapytanie podglądowe, nie sprawdzałem jego działania) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
Co znaczy "pobierze nie potrzebne dane"? Jak nie zrobisz join to nie pobierze.
Doctrine jest ograniczony (DQL). Albo zrób to w nativ SQL albo pogódź się z tym że musisz mieć zmapowaną relacje. To twoje inner join ... on ... się nie sprawdzi ponieważ wywali błąd - musi być WITH i wówczas będziesz musiał ręcznie mapować, ponieważ otrzymasz coś takiego:
Mam nadzieje że rozumiesz (IMG:style_emoticons/default/wink.gif) Sam się sporo z tym męczyłem i tego nie przeskoczysz. Albo SQL albo relacja. Ten post edytował Forti 23.07.2015, 08:42:17 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze słysze o użyciu WITH w zapytaniu. Co w podanym przeze mnie przykładzie wyrzuci błąd? Od zawsze robię takie w tym kontekście i nie miałem z nimi problemu.
Podczas używania Native SQL można podpiąć Encję Doctrine jako rezultat zapytania, by zwróciło kolekcję obiektów zamiast kolekcji tablic? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 655 Pomógł: 73 Dołączył: 2.05.2014 Ostrzeżenie: (0%) ![]() ![]() |
jakoś tak:
zamiast Expr\Join::WITH string 'WITH' również działa. Jak ustawisz 'ON' dostaniesz błąd. Gwarantuje. edit: nie pamiętam dokładniej treści błędu. Być może coś mieszam i jakoś to się da - z tym że na stackach wszędzie przykłady są z WITH. Błąd brzmiał mniej więcej: "unexpected ON, expected WITH" Ten post edytował Forti 23.07.2015, 16:35:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Ja sądziłem, że WITH zrobić w Native SQl a nie w QueryBuilder i stąd to niezrozumienie. Dziękuję za przykład, wszystko działa jak chciałem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 17:43 |