[Symfony2][Symfony]Join bez użycia Relacji na Encjach, Przykład zapytania SQL, które chciałbym wykonać na Doctrine |
[Symfony2][Symfony]Join bez użycia Relacji na Encjach, Przykład zapytania SQL, które chciałbym wykonać na Doctrine |
23.07.2015, 07:30:06
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) |
|
|
23.07.2015, 08:41:39
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 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 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
23.07.2015, 15:32:19
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? |
|
|
23.07.2015, 16:33:35
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 -------------------- Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.
Fachowo.co Behance.net/fachowo |
|
|
23.07.2015, 17:59:34
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.
|
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 22:12 |