| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 24.09.06 Prihlásený: 15.07.23 Príspevky: 1427 Témy: 37 Bydlisko: Bratislava |
Viem ze nazov temy ma nulovu vypovednu hodnotu, ale netusim ako to vysvetlit bez prikladu.
Posielam na databazu taketo query:
Kód: SELECT nazov FROM tabulka WHERE id IN (1, 2, 3) ORDER BY FIELD(id, 1, 2, 3) dostanem vysledok nazov1, nazov2, nazov3. No kedze cast query v IN() je dynamicky generovana, moze nastat napr. takato situacia: Kód: SELECT nazov FROM tabulka WHERE id IN (1, 1, 2) ORDER BY FIELD(id, 1, 1, 2)
dostanem vysledok nazov1, nazov2 - teda nazov sa vrati iba pre kazde unikatne ID - ja by som potreboval nejako toto query upravit aby som dostal pozadovany vysledok nazov1, nazov1, nazov2.
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Z databázy by si mal vyťahovať iba to, čo naozaj potrebuješ. A potom to u seba nejak pospájať.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 17.10.06 Prihlásený: 08.11.14 Príspevky: 37 Témy: 1 Bydlisko: blava |
ide o spájanie tabuliek, čiže potrebujeme ten záznam 2x keďže môže vyhovovať dvom záznamom z druhej tabuľky
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
A preco to s tou druhou tabulkou neprevaizete? tam by sa vam zaznamy bezpecne rozmnozili
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 17.10.06 Prihlásený: 08.11.14 Príspevky: 37 Témy: 1 Bydlisko: blava |
toto bolo skor zjednodusene napisany problem, v skutocnosti je to podstatne rozsiahlejsie
ide o to, ze potrebujeme z db aj duplicitne data, teda nejaka obdoba tohto sql, ktora nam nevynecha data a pri IN('1','1','2') vrati tri riadky
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
Toto s sqlkom nespravíš, a ak áno, tak nie efektívne a rýchlo. Existuje nejaká šanca, že by ti stačili iba id-čka?
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 20.12.08 Prihlásený: 02.02.20 Príspevky: 28 Témy: 5 Bydlisko: Košice | Napísal awtt: 25.08.2009 14:54 | |
|
Kód: SELECT nazov FROM ( SELECT 1 AS x UNION ALL SELECT 1 AS x UNION ALL SELECT 2 AS x ) foo JOIN tabulka ON tabulka.id = foo.x
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 Bydlisko: Bratislava |
Ak sem nepopisete podrobnejsie strukturu tabuliek a data ktore potrebujete, tak vam asi nikto poriadne neporadi.
Stale si ale myslim ze previazanie tabuliek problem riesi (ak su v jednej tabulke tie data duplicitne a v druhej nie).
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 17.10.06 Prihlásený: 08.11.14 Príspevky: 37 Témy: 1 Bydlisko: blava |
zjednodusene:
dve tabulky: 1. osoby, 2. zameranie
osoby:
id
meno
zameranie:
osoba_id
zameranie
priorita //urcuje poradie, vyssia prioirita je vyssie
v SQL uz mam ID osob, ktore chcem (teda mam ich ID v premennej):
Kód: SELECT meno FROM osoby WHERE id IN ($ids) ORDER BY FIELD(id, $ids) // $ids = 1,1,3
v dalsom kroku potom zistujem zamerania
potrebujem vypis (do pola) kde bude osoba.meno a jej zameranie (ale jedna osoba ma aj viac zamerani
dakujem za namety
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
join
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 20.12.08 Prihlásený: 02.02.20 Príspevky: 28 Témy: 5 Bydlisko: Košice | Napísal awtt: 25.08.2009 20:43 | |
|
Kód: SELECT meno, zameranie FROM osoby, zameranie WHERE osoba_id IN ( 1, 1, 3 ) AND id = osoba_id
|
|
Registrovaný: 17.10.06 Prihlásený: 08.11.14 Príspevky: 37 Témy: 1 Bydlisko: blava |
nakoniec som to vyriesil klasickym spojenim tabuliek (vyhol som sa tej casti s IN() )
dakujem za rady
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Priradenie hodnoty do input/select v JavaScript, VBScript, Ajax | 4 | 564 | 05.06.2011 11:04 chrono | | MySQL Select v Databázy | 2 | 402 | 07.04.2014 6:52 XOLOO | | MySQL - SELECT JOIN v Databázy | 9 | 799 | 21.07.2017 18:19 lukas15 | | select z mysql v PHP, ASP | 4 | 483 | 09.10.2007 21:23 bruno.b | | mysql select pre autocomplete v Databázy | 0 | 262 | 17.06.2013 12:02 general667 | | MySQL select date between v Databázy | 3 | 359 | 05.06.2013 20:48 stenley | | ako zmenit vystup - select mysql v PHP, ASP | 3 | 544 | 29.07.2008 8:02 stenley | | mysql: 2 tabulky - jeden select v Databázy | 16 | 707 | 09.11.2014 22:03 JanoF | | Z mySql do <select> v PHP, ASP | 13 | 600 | 02.05.2009 23:32 suchy | | SELECT z MySQL db medzi dvoma casmi v Databázy | 9 | 2110 | 11.07.2018 13:51 jumper | | Automaticke doplnanie <select> po kliknuti , vyber z MySql v JavaScript, VBScript, Ajax | 1 | 446 | 22.05.2015 12:44 stenley | | P: HP ProOne 440 G5 23.8-in All-in-one PC v Predám | 0 | 125 | 21.02.2023 7:58 myso99 | | pozadie stale rovnake v HTML, XHTML, XML, CSS | 3 | 554 | 04.01.2008 0:34 kmsa | | 3 rovnake tablety v Notebooky a netbooky | 29 | 685 | 02.10.2012 15:29 maugggly | | Sú tieto HD6770 rovnaké? v ATI/AMD grafické karty | 3 | 440 | 29.08.2012 20:42 BOBO415 | | 2 x rovnake pc v PC skrinky a zdroje | 2 | 342 | 09.03.2017 16:11 nitronus |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|