Slučovnání tabulek – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Slučovnání tabulek – MySQL – Fórum – Programujte.comSlučovnání tabulek – MySQL – Fórum – Programujte.com

 

Mergl0
Newbie
11. 11. 2010   #1
-
0
-

Ahoj.
Mám 5 tabulek.
1. item [id|display|name]
2. like_item [id|item|aitem|popularity]
3. like_categori [id|item|categori|popularity]
4. noitem [id|user|item]
5. assign [id|item|categori]

Vstupní proměné:
item = aktualni item
user = uzivatel

propojeni:
item.id = like_item.aitem
assign.item = item.id
assign.categori = like.categori.categori
noitem.item = item.id

Potřebuju vypsat nazvy produktů které:
a) like_item.item = $item nebo like_categori.item = $item
b) nesmi existovat radek noitem.item = item.id and noitem.user = $user
c) produkty musi byt seřazeny podle popularity, bud popularita u like_item nebo like_categori, podle toho odkud je ten produkt prirazenej...

Ja si s tim už nevím rady... prosim posilejte jakekoliv napady
Díky

Nahlásit jako SPAM
IP: 77.48.185.–
KIIV
~ Moderátor
+43
God of flame
11. 11. 2010   #2
-
0
-

hledas JOIN? nebo co myslis?

navrh mas pomerne obsahlej a vypada ze to staci prepsat do SQL .. skoro doslovne


pripadne muzes postupovat po jednotlivejch tabulkach.. v nejakem hodne rozsahlem projektu by to mohlo usetrit dost casu na spojovani

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
15. 11. 2010   #3
-
0
-

Děkuji za reakci...
Ale již jsem to vyřešil sám
výsledný kod je:



SELECT
i.name,
i.url_name,
i.id,
lc.categori,
li.display
FROM
eshop_item i,
eshop_item_like_categori lc,
eshop_item_like_item li,
eshop_assign_to_categori a
WHERE
(
(
li.item = '".$item['id']."' and
li.aitem = i.id and
a.id = '0' and
lc.id = '0'
) or (
lc.item = '".$item['id']."' and
lc.categori = a.categori and
a.item = i.id and
li.id = '0'
)
) and
i.display = '1' and
NOT EXISTS (SELECT lni.id FROM eshop_item_like_noitem lni WHERE lni.item = i.id and lni.user = '".$user."')
GROUP BY i.id
ORDER BY (li.popularity + lc.popularity) DESC, RAND()

Nahlásit jako SPAM
IP: 77.48.185.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 4 hosté

Podobná vlákna

Provazani tabulek — založil radek pechak

Sloučení tabulek — založil CZechB0Y

Seznam tabulek — založil ProgDan

Spojení tabulek — založil Paja2

Linkování tabulek — založil Toka

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý