Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> right join limit problem
r4nd4ll
post 28.12.2010, 22:11:05
Post #1





Grupa: Zarejestrowani
Postów: 38
Pomógł: 5
Dołączył: 10.05.2009

Ostrzeżenie: (0%)
-----


Proszę o pomoc, bo już męczę się sam nie wiem jak długo z tym zapytaniem... Otóż mam 2 tablice w relacji 1:n. Pierwsza to dane rekordu (id, widoczność, daty), natomiast druga zawiera wszelkie teksty występujące w rekordzie (nazwa, treść). Parametrem rozróżniającym jest tinyint 'language', może przybierać wartości 0 (pl), 1 (en), 2 (de).
To co chcę osiągnąć tym zapytaniem, to pobranie rekordów w wybranej wersji językowej lub, jeśli dany rekord nie został jeszcze przetłumaczony, pobranie wersji domyślnej polskiej (0). Oto zapytanie:

  1. SELECT `data_tb`.`id` AS `id`, `text_tb`.`language` AS `language` , `text_tb`.`name` AS `name`
  2. FROM `kcms_article` `data_tb`
  3. RIGHT JOIN `kcms_article_txt` `text_tb` ON ( `text_tb`.`id` = `data_tb`.`id` )
  4. WHERE (`text_tb`.`language` = 1 OR `text_tb`.`language` = 0)
  5. GROUP BY `text_tb`.`id` DESC
  6. ORDER BY `data_tb`.`id`
  7. LIMIT 10


Zapytanie działa ok, kiedy dodam na końcu LIMIT. Listing:

  1. id language name
  2. 1 1 testenglish
  3. 2 0 testes
  4. 3 0 artykułowy
  5. 4 1 ang
  6. 5 0 tytuł
  7. 6 0 cztery
  8. 7 0 długie
  9. 8 0 aaaaaaaaaa
  10. 9 1 socialtechniq
  11. 10 0 socjotechnika2


Kiedy nie dodam LIMIT na końcu, lub kiedy podany limit jest mniejszy niż liczba wszystkich rekordów otrzymuję coś takiego:

  1. id language name
  2. 1 0 test11
  3. 2 0 testes
  4. 3 0 artykułowy
  5. 4 0 pol
  6. 5 0 tytuł
  7. 6 0 cztery
  8. 7 0 długie
  9. 8 0 aaaaaaaaaa
  10. 9 0 socjotechnika
  11. 10 0 socjotechnika2
  12. 11 0 wprowadzenie
  13. 12 0 ssssss
  14. 13 0 czynnik ludzki
  15. 14 0 cccccccccc
  16. 15 0 ttttttttttttttt
  17. 16 0 mmmmm
.

... czyli wszystkie rekordy w domyślnej wersji językowej :/
Moje pytanie jest takie: jak skonstruować to zapytanie, żeby niezależnie od wystąpienia LIMIT osiągnąć zamierzony efekt ?
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 03:01