Forum » Programiranje » [mySQL] Največja vrednost v drugi tabeli
[mySQL] Največja vrednost v drugi tabeli
Glodko ::
Delam preprost "forum" z mySQL bazo in uporabo PHP/HTML/CSS. Imam dve tabeli. V prvi so naslovi tem, v drugi pa vpisi v temah. Tabeli so povezani preko id-ja teme ki je v obeh vpisan (1:n). Se pravi tako:
Tabela 1 (ime_teme, id_teme):
(tema_1, 1)
(tema_2, 2)
(tema_3, 3)
...
Tabela 2 (vnos_v_temi, id_teme):
(prvi_vnos_v_temi_1, 1)
(drugi_vnos_v_temi_1, 1)
(prvi_vnos_v_temi_2, 2)
...
V vsaki tabeli je še datum, ki se avtomatsko vpiše ob kreiranju vrstice.
Sedaj bi jaz rad implementiral simpel iskanje. In sicer tako da vpišeš iskalni niz in ta poišče ime teme ki se ujema in zadnji vnos v tej temi. Uspelo mi je že da išče za izbrani niz v prvi in drugi tabeli z left join. Kar ne vem je kako bi dosegel da mi hkrati v isti poizvedbi vrne še vnos z zadnjim datumom. Upam da se razume kaj želim. Če ne uporabim DISTINCT mi vrne toliko rezultatov nazaj kot je v temi vpisov v Tabeli 2. Če uporabim DISTINCT vrne samo enega, kar je prav, ne vrne pa vedno tistega ki je datumsko zadnji vpisan v Tabeli 2.
Tabela 1 (ime_teme, id_teme):
(tema_1, 1)
(tema_2, 2)
(tema_3, 3)
...
Tabela 2 (vnos_v_temi, id_teme):
(prvi_vnos_v_temi_1, 1)
(drugi_vnos_v_temi_1, 1)
(prvi_vnos_v_temi_2, 2)
...
V vsaki tabeli je še datum, ki se avtomatsko vpiše ob kreiranju vrstice.
Sedaj bi jaz rad implementiral simpel iskanje. In sicer tako da vpišeš iskalni niz in ta poišče ime teme ki se ujema in zadnji vnos v tej temi. Uspelo mi je že da išče za izbrani niz v prvi in drugi tabeli z left join. Kar ne vem je kako bi dosegel da mi hkrati v isti poizvedbi vrne še vnos z zadnjim datumom. Upam da se razume kaj želim. Če ne uporabim DISTINCT mi vrne toliko rezultatov nazaj kot je v temi vpisov v Tabeli 2. Če uporabim DISTINCT vrne samo enega, kar je prav, ne vrne pa vedno tistega ki je datumsko zadnji vpisan v Tabeli 2.
SELECT DISTINCT * FROM Tabela 1 LEFT JOIN Tabela 1 ON Tabela 2 WHERE Stolpec 1 LIKE ....
steev ::
Uporabi tole pa brez distinct
ORDER BY tabela2.stolpec_datum DESC LIMIT 1
:|
Zgodovina sprememb…
- spremenil: steev ()
win64 ::
malo obrnjen stavek:
select * from tabela2 where id_teme in (select id_teme from tabela1 where ime_teme like '%test%') ORDER BY tabela2.stolpec_datum DESC LIMIT 1
select * from tabela2 where id_teme in (select id_teme from tabela1 where ime_teme like '%test%') ORDER BY tabela2.stolpec_datum DESC LIMIT 1
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | MySQL izpis vsebine iz dveh tabelOddelek: Programiranje | 1190 (1078) | iMark |
» | [SQL] Unikatni izpisiOddelek: Programiranje | 2225 (1612) | 111111111111 |
» | [SQL] PgAdmin preprosto vprasanje povezano s stolpci v tabeliOddelek: Programiranje | 2199 (1558) | Cvele2011 |
» | MYSQL vprašanjeOddelek: Programiranje | 1796 (1411) | MrBrdo |
» | MySQL združevanje tabel..Oddelek: Programiranje | 1713 (1528) | Nemenej |