Autor | Zpráva | ||
---|---|---|---|
miskith Profil |
#1 · Zasláno: 30. 6. 2010, 15:46:47 · Upravil/a: miskith
Dobrý den,
Nevěděl sem, jaký mám dát titulek, ani nevím, jak to mám nejlépe vysvětlit, tak uvedu příklad: num1 | num2 | num3 | num4 | Jméno 100 | 0 | 0 | 0 | Řádek1 101 | 10 | 20 | 30 | Řádek2 102 | 800 | 801 | 802 | Řádek3 800 | 0 | 0 | 0 | Řádek4 801 | 0 | 0 | 0 | Řádek5 802 | 0 | 0 | 0 | Řádek6 Normální výpis by vypsal všechny řádky, ale já chci vypsat pouze řádky se jmény "ŘÁDEK1", "ŘÁDEK2" a "ŘÁDEK3", protože neobsahují žádné číslo, které je poté obsažené ve sloupci "num1"... ŘÁDEK2 obsahuje sice jiná čísla než '0' , ale chci, aby ho SQL zahrnulo, protože čísla (10, 20, 30) nejsou obsažena v žádné ze záznamů ve sloupci "num1". Snad jste mě pochopili a děkuji za odpověď :). |
||
Kajman_ Profil * |
#2 · Zasláno: 30. 6. 2010, 16:17:23
Moc to zadání nedává smysl, pokud platí popis a nemají se tedy vypsat řádky 1 2 3, ale řádky 1 2 4 5 6, tak by to mohlo být např. takto
select t.* from tabulka t left join tabulka n2 on t.num2=n2.num1 left join tabulka n3 on t.num3=n3.num1 left join tabulka n4 on t.num4=n4.num1 where n2.num1 is null and n3.num1 is null and n4.num1 is null Každopádně to zavání špatně navrženou strukturou. |
||
miskith Profil |
#3 · Zasláno: 30. 6. 2010, 16:19:43 · Upravil/a: miskith
No..strukturu tabulky jsem nedělal já, jde totiž o C++ aplikaci využívající MySQL a já chci některý obsah MySQL vypsat na internetu...
EDITED: Teď mě napadlo, že sem ten náhled tabulky neudělal přesně... Ty který nechci aby to vybralo mají stejné jméno jako tabulka obsahující jejich num1. Takže tabulka by vypadala nějak takhle: 100 | 0 | 0 | 0 | Řádek1 101 | 10 | 20 | 30 | Řádek2 102 | 800 | 801 | 802 | Řádek3 800 | 0 | 0 | 0 | Řádek3 801 | 0 | 0 | 0 | Řádek3 802 | 0 | 0 | 0 | Řádek3 Takže když dám pak SELECT, tak tam mám ve výsledku 4x Řádek3 a já bych potřeboval jen jednou a to ten, kterej obsahuje čísla v num2,num3,num4 a ty s těma nulama do výběru nezahrnout... |
||
Kajman_ Profil * |
#4 · Zasláno: 1. 7. 2010, 08:47:41
select t.* from tabulka t left join tabulka n2 on n2.num2=t.num1 left join tabulka n3 on n3.num3=t.num1 left join tabulka n4 on n4.num4=t.num1 where n2.num2 is null and n3.num3 is null and n4.num4 is null |
||
Časová prodleva: 4 dny
|
|||
miskith Profil |
#5 · Zasláno: 5. 7. 2010, 13:44:06 · Upravil/a: miskith
Tak sem to zkoušel, ale bohužel bez úspěchu. Stránka se mi nenačetla a zahltil sem server, že sem musel 5 minut čekat, než se načte restart serveru. Ale i tak díky za snahu a nenapadá tě (nebo někoho jiného) jiný způsob?
|
||
Časová prodleva: 14 let
|
0