Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]subselect, order i not null
Forum PHP.pl > Forum > Przedszkole
lobopol
Mam 2 tabele
article
-id
-content

image
-id
-article_id
-position

chcę jednym zapytaniem pobrać wszystkie artykuły które mają zdjęcia, i chcę równocześnie mieć wszystkie id tych zdjęć, zdjęcia chcę mieć w kolejności zależnej od position

czyli przy bazie mającej :

article:
id content
1 tresc1
2 tresc2
3 tresc3
4 tresc4
Kod
image
id article_id position
1  1              2
2  2              1
3  1              1
4  1              3
5  4              1

wynik
Kod
id images
1    3,1,4
2    2
4    5


  1. SELECT
  2. article.id,
  3. (SELECT GROUP_CONCAT(image.id ORDER BY image.position ASC)
  4. FROM
  5. image
  6. WHERE
  7. image.article_id= article.id) AS images
  8. FROM
  9. article
  10. WHERE
  11. images IS NOT NULL

To zwraca mi błąd
Kod
[Window Title]
Error

[Content]
SQL Error (1054): Unknown column 'images' in 'where clause'
[OK]


to

  1. SELECT
  2. article.id,
  3. (SELECT GROUP_CONCAT(image.id ORDER BY image.position ASC)
  4. FROM
  5. image
  6. WHERE
  7. image.article_id= article.id ) AS images
  8. FROM
  9. article

zwraca mi :
1 3,1,4
2 2
3 (NULL)
4 5
Czyli wynik z nullem ma ktoś może jakąś koncepcje?
Sephirus
  1. SELECT a.id AS id, GROUP_CONCAT(im.id) AS img_id FROM image AS im
  2. JOIN article AS a ON a.id = im.article_id WHERE im.id IS NOT NULL
  3. GROUP BY im.article_id ORDER BY im.position ASC
lobopol
Dziś już problem rozwiązałem
  1. SELECT
  2. article.id,
  3. GROUP_CONCAT(image.id ORDER BY image.position ASC) AS images,
  4.  
  5. FROM
  6. project
  7. JOIN image ON image.article_id = article.id
  8. WHERE
  9. article.STATUS = "active"
  10. GROUP BY
  11. article.id
  12. LIMIT 58

Pomógł leci za chęć pomocy smile.gif
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.