Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Zapytanie podzapytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
dado
Witam bardzo proszę o wskazówkę. Mam zapytanie o takie budowie
  1. SELECT
  2. a.*,
  3. (
  4. SELECT
  5. c.name
  6. FROM
  7. crm_download_merge b
  8. JOIN
  9. crm_download_category c ON(b.category_id=c.id)
  10. WHERE
  11. b.file_id = a.id
  12. )
  13. AS category
  14. FROM
  15. crm_download_item a
  16. LIMIT
  17. 0,15

zapytanie ma wyciągac listę plików z działu download wraz z kategoriami do których należą poszczególne pliki problem ten sam plik moze znajdować sie w wielu kategoriach i jeśli w podzapytaniu zwracany jest wiecej niz jeden rekord wywala błąd
Cytat
Subquery returns more than 1 row


Jak zbudować zapytanie tak aby zwracało wiele rekordów z podzapytania
wookieb
Nie da się w tym miejscu co aktualnie posiadasz.
pmir13
  1. SELECT item.*, cat_list.category FROM crm_download_item item
  2. JOIN ( SELECT merge.file_id, GROUP_CONCAT( cat.name SEPARATOR ', ' ) AS category
  3. FROM crm_download_merge merge
  4. JOIN crm_download_category cat
  5. ON merge.category_id = cat.id
  6. GROUP BY merge.file_id ) cat_list
  7. ON cat_list.file_id = item.id

będzie zwracało taką na przykład listę:
Kod
id    filename        size     category
1     file1.jpg       52440    Cat1, Cat3, Cat4
2     file2.jpg       42013    Cat1
3     filexyz.jpg     142897   Cat2, Cat3
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.