Autor | Zpráva | ||
---|---|---|---|
Cup Profil |
Dobrý dne. Nevím si rady s výběrem dat z jedné tabulky. Chci vybrat pouze ty záznamy. na které odpověděl uživatel s id např. 1
sesmolil jsem pár dotazů, ale žádný nefungoval tak jak jsem chtěl. Myslím že by to šlo nějak takto, ale nevrací mi to žádné záznamy SELECT * FROM vzkaz v, user u WHERE v.idUser = u.idUser AND v.idUser = '".$_SESSION["idUser"]."' AND v.idTrida = '".$_SESSION["idTrida"]."' AND v.verejnyVzkaz = '0' AND odpovedVzkaz IN ( SELECT idVzkaz FROM vzkaz v WHERE v.idUser = '".$_SESSION["idUser"]."' ) ORDER BY v.idVzkaz DESC struktura: CREATE TABLE IF NOT EXISTS `vzkaz` ( `idVzkaz` int(11) NOT NULL AUTO_INCREMENT, `idTrida` int(11) NOT NULL, `idSkola` int(11) DEFAULT NULL, `idUser` int(11) NOT NULL, `textVzkaz` text COLLATE utf8_czech_ci NOT NULL, `casVzkaz` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `verejnyVzkaz` int(1) NOT NULL DEFAULT '0', `odpovedVzkaz` int(16) NOT NULL DEFAULT '0', PRIMARY KEY (`idVzkaz`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci ROW_FORMAT=DYNAMIC AUTO_INCREMENT=43 ; -- -- Vypisuji data pro tabulku `vzkaz` -- INSERT INTO `vzkaz` (`idVzkaz`, `idTrida`, `idSkola`, `idUser`, `textVzkaz`, `casVzkaz`, `verejnyVzkaz`, `odpovedVzkaz`) VALUES (42, 8, 1, 1, 'efsd', '2010-02-10 10:57:09', 0, 0), (41, 8, 1, 1, 'DD', '2010-02-10 10:50:12', 0, 33), (40, 8, 1, 1, 'DD', '2010-02-10 10:50:08', 0, 34), (39, 8, 1, 16, 'DDD', '2010-02-10 10:49:54', 0, 32), (38, 8, 1, 16, 'DDD', '2010-02-10 10:49:46', 0, 29), (37, 8, 1, 16, 'DDDD', '2010-02-10 10:49:39', 0, 33), (36, 8, 1, 16, 'DDDD', '2010-02-10 10:49:31', 0, 31), (35, 8, 1, 16, 'DDD', '2010-02-10 10:49:26', 0, 0), (34, 8, 1, 6, 'DD', '2010-02-10 10:48:43', 0, 0), (33, 8, 1, 6, 'FF', '2010-02-10 10:48:35', 0, 31), (32, 8, 1, 6, 'DD', '2010-02-10 10:48:28', 0, 0), (31, 8, 1, 2, 'EDD s d g', '2010-02-10 10:42:38', 0, 29), (30, 8, 1, 2, 'dsgsd', '2010-02-10 10:42:27', 0, 0), (29, 8, 1, 1, 'Takže user 1', '2010-02-10 10:38:07', 0, 0); Díky všem :) Moderátor Joker: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
|
||
SwimX Profil |
#2 · Zasláno: 10. 2. 2010, 12:03:32 · Upravil/a: SwimX
Cup:
buď nechápu, nebo je to jen toto: :) SELECT * FROM vzkaz WHERE idUser = 1 |
||
ninja Profil |
#3 · Zasláno: 10. 2. 2010, 12:04:41 · Upravil/a: ninja
Chci vybrat pouze ty záznamy. na které odpověděl uživatel s id např. 1
SELECT * FROM vzkaz v JOIN user u ON v.idUser = u.idUser WHERE u.idUser="1"; |
||
SwimX Profil |
#4 · Zasláno: 10. 2. 2010, 12:11:13
Cup:
možná ještě takle: SELECT * FROM vzkaz v JOIN user u ON v.idUser = u.idUser WHERE u.idUser="1" and odpovedVzkaz <> 0; |
||
Cup Profil |
#5 · Zasláno: 10. 2. 2010, 12:14:12
Joker:
Sory zapoměl jsem. ninja: Tak jednoduše? ... no zkusil jsem to, a to co bych chtěl nefunguje. Mám tu diskusi asi 5 úrovňovou. a mě jde jen o to aby to vybralo id toho příspěvku na který já odpovídám. toto vybírá čistě jen moje příspěvky. já bych chtěl id příspěvků na které já odpovídám, -> jednu úroveň nad ním (id toho na který odpovídám) CHápete co myslím, kdyžtak dovysvětlím |
||
Cup Profil |
#6 · Zasláno: 10. 2. 2010, 12:16:20 · Upravil/a: Cup
SwimX:
Ano to chápete správně. ale vybírá to pouze moje příspěvky. já potřebuju ten o úrověň víše, takže idvzkaz = odpovedVzkaz (ale pokaždé se jedná o jiný řádek v tabulce)... ale nevím jak to tam zapsat |
||
Kajman_ Profil * |
#7 · Zasláno: 10. 2. 2010, 12:20:50
select v1.* from vzkaz v1 join vzkaz v2 on v1.idVzkaz=v2.odpovedVzkaz where v2.id_user=1 |
||
Cup Profil |
#8 · Zasláno: 10. 2. 2010, 12:30:31
Kajman:
Jo. to bude ono :) díky |
||
Časová prodleva: 14 let
|
0