Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pobranie danych z dwóch tabel i pogrupowanie według pierwszej tabeli, problem z zapytaniem
pgrzelka
post
Post #1





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


Witam

posiadam dwie tabelę

pages_cats
-cat_id
-cat_title

pages
-p_id
-p_title
-p_catid

potrzebuję pobrać dane w mniej więcej taki sposób
  1. "SELECT pages_cats.cat_title,
  2. (SELECT pages.p_title FROM pages WHERE (pages.p_catid=pages_cats.cat_id)) as dane
  3. FROM pages_cats"

czyli do każdego rekordu z 'pages_cats' dodajemy wszystkie rekordy z 'pages' gdzie pages.p_catid = pages_cats.cat_id

dostaje taki komunikat:
Cytat
SQLSTATE[21000]: Cardinality violation: 1242 Subquery returns more than 1 row


pierwszy raz stworzyłem takie zapytanie i mam z nim spory problem,
po błędzie widzę że chodzi o to że wewnętrzne zapytanie zwróciło więcej niż jeden rekord, ale mi właśnie o to chodzi
gdzie tu jest błąd ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pgrzelka
post
Post #2





Grupa: Zarejestrowani
Postów: 313
Pomógł: 24
Dołączył: 9.08.2008
Skąd: Kielce

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


@Kefirek, trochę o coś innego mi chodzi

po dodaniu LIMIT 1 do wewnętrznego zapytania uzyskałem coś takiego
  1. "SELECT pages_cats.*,
  2. (SELECT pages.p_title FROM pages WHERE (pages.p_catid=pages_cats.cat_id) LIMIT 1 ) as dane
  3. FROM pages_cats"

Kod
     Array
      (
          [0] => Array
              (
                  [cat_id] => 1
                  [cat_siteid] => 1
                  [cat_title] => testowa2sa
                  [dane] => druga strona
              )
      
          [1] => Array
              (
                  [cat_id] => 3
                  [cat_siteid] => 1
                  [cat_title] => Test
                  [dane] =>
              )
      
      )


a chciałbym dostać coś takiego:

Kod
Array
      (
          [0] => Array
              (
                  [cat_id] => 1
                  [cat_siteid] => 1
                  [cat_title] => testowa2sa
                  [dane] => array('druga strona', 'trzecia strona', 'i nastepna z tabeli pages')
              )
      
          [1] => Array
              (
                  [cat_id] => 3
                  [cat_siteid] => 1
                  [cat_title] => Test
                  [dane] => array('rekordy z pages', '', '')
              )
      
      )

czyli chciałbym pobrać wszystkie rekordy z 'pages' przypisane do danej kategorii a nie tylko jeden

Ten post edytował pgrzelka 23.02.2009, 20:04:46
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: 6.10.2025 - 02:24