Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ MySQL _ Jak posortowac tabele wg wynikow z innej tabeli

Napisany przez: netvalue 26.06.2018, 09:35:10

mam dwie tabele

media_category:

id | title_pl
------------------
5 | abc
7 | bca
9 | ads
10 | xxx

oraz

offer_media
id | media_id | offer_id
-------------------------
1 | 7 | 31
2 | 5 | 31

potrzebuje wyciagnac wszystkie rekordy z tabeli media_category ale posrtowane wg kolejnosci id z tabeli offer_media dla offer_id = 31

wynik powinien byc taki

7 | bca
5 | abc
9 | ads
10 | xxx


robie tak ale cos mi nie wychodzi:

  1. SELECT id,title_pl, id2
  2. FROM (
  3. SELECT o.media_id AS id, m.title_pl, o.offer_id AS id2 FROM offer_media o JOIN media_category m ON m.id=o.offer_id WHERE o.offer_id=31
  4. UNION
  5. SELECT id AS id ,title_pl, NULL AS id2 FROM media_category
  6. ) t
  7. GROUP BY title_pl ORDER BY id2 DESC

Napisany przez: nospor 26.06.2018, 09:37:37

czemu nie zrobisz zwyklego LEFT JOIN na offer_media tylko kombinujesz z podzapytaniami i UNION?

Napisany przez: netvalue 26.06.2018, 10:03:37

Ponieważ jak dam

  1. SELECT m.title_pl , m.id FROM media_category m LEFT JOIN offer_media o ON o.media_id=m.id WHERE o.offer_id=31


wyświetli mi tylko dwa wiersze które są w offer_media

Napisany przez: nospor 26.06.2018, 10:04:43

no ale o.offer_id=31 masz robic w sekcji JOIN po ON a nie w where....

Napisany przez: netvalue 26.06.2018, 10:14:28

OMG. ale fail robie smile.gif dzieki Nospor . Starosc nie radosc smile.gif

Napisany przez: nospor 26.06.2018, 10:24:16

Cytat(netvalue @ 26.06.2018, 10:14:28 ) *
Starosc nie radosc smile.gif
Znam to z pierwszej reki wink.gif Zdarza sie kazdemu

Napisany przez: Pyton_000 26.06.2018, 10:29:14

@netvalue a ile ty masz lat że tak twierdzisz wink.gif

Napisany przez: nospor 26.06.2018, 10:31:55

@Pyton sie nie boj, ciebie staruszku i tak nikt nie przebije wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)