Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony2][Symfony]Join bez użycia Relacji na Encjach, Przykład zapytania SQL, które chciałbym wykonać na Doctrine
adbacz
post
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?

  1. SELECT p.*
  2. FROM player p
  3. INNER JOIN player_crew c
  4. ON ( p.crew_id = c.id )
  5. WHERE ( c.owner = "$userId" )
  6. LIMIT 1

(zapytanie podglądowe, nie sprawdzałem jego działania)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Forti
post
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:

  1. $result = [
  2. 0 => [
  3. 'name' => 'nazwa',
  4. 'joined_record' => 1
  5. ],
  6. 1 => [
  7. 'name' => 'tutaj bedzie joined_record'
  8. ]
  9. ];


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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 20:42