Autor | Zpráva | ||
---|---|---|---|
doom Profil * |
#1 · Zasláno: 27. 4. 2010, 10:12:52
Dobrý den, mám problém s výpisem s napojením na druhou tabulku. Všechno funguje, ale jen jedna věc mě trápí a to, že ignoruje date DESC. Ví někdo kde dělám chybu? Děkuju
WHERE id_product IN (SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY date DESC) ORDER BY date_end ASC"; |
||
Joker Profil |
#2 · Zasláno: 27. 4. 2010, 10:17:42 · Upravil/a: Joker
doom:
Protože "date" je vyhrazené slovo. V první řadě není úplně vhodné vyhrazená slova vůbec používat pro názvy sloupců, ale jestli už to tak je, zkuste: … ORDER BY `date` … edit: Seznam rezervovaných slov se dá najít v manuálu (pro MySQL, vpravo lze přepnout verzi, pro ostatní databáze v jejich manuálech) |
||
doom Profil * |
#3 · Zasláno: 27. 4. 2010, 10:27:33
To nefunguje pořád na to prdí :-(
|
||
Joker Profil |
#4 · Zasláno: 27. 4. 2010, 10:32:30
doom:
Aha, koukám na to pořádně a on ten SQL dotaz vlastně nedává smysl. Proč vlastně chcete řadit data v poddotazu, který se použije jen ve WHERE podmínce? Tam přece nezáleží na tom, jak je to seřazené, jen na tom, jestli to id_product v tom výběru je nebo není. Co to má dělat? |
||
doom Profil * |
#5 · Zasláno: 27. 4. 2010, 10:34:41
Má vypsat produkty, které jsou posledně přihozené v objednávce :-)
|
||
__construct Profil |
#6 · Zasláno: 27. 4. 2010, 10:46:26 · Upravil/a: __construct
Ano ale Joker Ti chcel povedať, že celý ten dotaz je nejaký divný - Máš tam:
Vyber niečo od niekiaľ ak je produkt v tomto zozname (8,1,3,56,98) a zoraď ich podľa dátumu Tomu dotaz je jedno v akom poradí sú tie produkty v zátvorke .. jedine, že by si tam zabudol LIMIT .. |
||
doom Profil * |
#7 · Zasláno: 27. 4. 2010, 10:50:10
Jinak napsáno: seřazuje podle seznamu id zasebou a ne všechno ostatní hází bobek, ale když to nejde udělat pomocí INT, tak čím?
|
||
__construct Profil |
#8 · Zasláno: 27. 4. 2010, 11:00:24 · Upravil/a: __construct
Skús toto:
(SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY `order`.`date` DESC) Mám taký dojem, že pokiaľ nezadefinuješ do dotazu z ktorej je to tabuľky tak on zoraďuje ako by ten stĺpec bol string a nie dátum .. |
||
doom Profil * |
#9 · Zasláno: 27. 4. 2010, 11:14:55
To je bohužel taky bez efektu. Chyba žádná, ale na řazení prdí.
|
||
nightfish Profil |
#10 · Zasláno: 27. 4. 2010, 11:24:24 · Upravil/a: nightfish
doom:
ukaž celý ten dotaz (tedy i část před prvním WHERE v [#1]) |
||
doom Profil * |
#11 · Zasláno: 27. 4. 2010, 11:32:29
$query = "SELECT date_format(date_end, '$date_server') AS top_date,id_product,id_user,id_category,name_ebay,price,bid,description,specific_product,focus_product,producer,date_end,insert_ebay FROM drazba WHERE date_end > '$date' AND id_product IN (SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY order`.`date` DESC) ORDER BY date_end ASC"; |
||
Kajman_ Profil * |
#12 · Zasláno: 27. 4. 2010, 11:41:13
Order by v tomto poddotaze přece nemůže nic ovlivnit. Všechny varianty omezí výběr stejně a na zaření výsledku nemají vliv!
id_product IN (SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY `order`.`date` DESC) id_product IN (SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY `order`.`date` ASC) id_product IN (SELECT DISTINCT product FROM order WHERE price > '0') |
||
__construct Profil |
#13 · Zasláno: 27. 4. 2010, 11:41:18
Chýba Ti tam jedna úvodzovka:
SELECT date_format(date_end, '$date_server') AS top_date, id_product, id_user, id_category, name_ebay, price, bid, description, specific_product, focus_product, producer, date_end, insert_ebay FROM drazba WHERE date_end > '$date' AND id_product IN ( SELECT DISTINCT product FROM order WHERE price > '0' ORDER BY `order`.`date` DESC) ORDER BY date_end ASC; |
||
nightfish Profil |
#14 · Zasláno: 27. 4. 2010, 11:41:57
doom:
„Má vypsat produkty, které jsou posledně přihozené v objednávce :-)“ dotaz tak, jak je koncipován, vybere položky z tabulky `drazba`, jejichž ID odpovídají všem ID u tabulky `order` s kladnou cenou, a všechny takto vybrané položky seřadí vzestupně podle `date_end` takže zkus popsat trochu lépe, co chceš vybrat a jak to chceš seřadit, třeba vymyslíme, jak by se to dalo propašovat do SQL dotazu |
||
doom Profil * |
#15 · Zasláno: 27. 4. 2010, 11:48:54
Řadit se ma odposlední přihozené ceny. Nic víc ani mín, ale je to větší problém než jsem si myslel.
|
||
nightfish Profil |
#16 · Zasláno: 27. 4. 2010, 11:52:59
doom:
„Řadit se ma odposlední přihozené ceny. Nic víc ani mín“ A poslední přihozená cena se vezme ve kterém sloupci které tabulky? Když nic víc, tak proč tam máš ORDER BY `date_end` ASC? |
||
doom Profil * |
#17 · Zasláno: 27. 4. 2010, 11:55:11
Zapoměl jsem na řazení podle datumu ukončení. Cena se bere s tabulky order
|
||
nightfish Profil |
#18 · Zasláno: 27. 4. 2010, 12:01:03
možná by mohlo fungovat toto
AND id_product IN (SELECT product FROM order GROUP BY product HAVING MAX(price) > 0) |
||
doom Profil * |
Hmm, tak na tohle taky nezabral.
Moderátor nightfish: Příště zkus nepoužít tři písmenka "m" těsně za sebou, neboť se na tomto fóru jedná o přivolávač moderátorů.
|
||
__construct Profil |
#20 · Zasláno: 27. 4. 2010, 12:16:41 · Upravil/a: __construct
Jak napísal Kajman [#12] tade cesta nevedie ..
Možno niečo takéto .. SELECT date_format(date_end, '$date_server') AS top_date, id_product, id_user, id_category, name_ebay, price, bid, description, specific_product, focus_product, producer, date_end, insert_ebay FROM drazba WHERE date_end > '$date' AND id_product IN ( SELECT product FROM order GROUP BY product HAVING MAX(price) > 0) -- tento select netreba nijak zoraďovať ORDER BY datum_poledne_prihodenie DESC, date_end ASC; |
||
doom Profil * |
#21 · Zasláno: 27. 4. 2010, 12:32:52
nightfish: se omlouvám, ale nevěděl jsem to.
construct: B´bohužel ani tohle nefunguje. Kombinuju to se všema nápadama co už tady protekli, ale ani kombinace nefunguje |
||
doom Profil * |
#22 · Zasláno: 27. 4. 2010, 12:36:52
cesta pomocí IN asi neni. Nedá se to vyvolat i jinak nez pomoci IN?
|
||
nightfish Profil |
#23 · Zasláno: 27. 4. 2010, 12:56:03
doom:
„Nedá se to vyvolat i jinak nez pomoci IN?“ Možná ano. Ale vytrvale se bráníš našim snahám vypáčit z tebe, co všechno má ten dotaz udělat. Jak tak nad tím přemýšlím, možná by ještě pomohla ukázka konkrétních dat + výsledku, který z nich požaduješ. |
||
doom Profil * |
#24 · Zasláno: 27. 4. 2010, 13:05:58
já se ničemu nebránim, ale vážně jsem napsal co všechno po tom dotazu chci. Víc k tomu vážně dodat nejde.
|
||
nightfish Profil |
#25 · Zasláno: 27. 4. 2010, 13:11:18
doom:
dovolil jsem si shromáždit z tohoto vlákna všechny tvé příspěvky, ve kterých popisuješ, co chceš aby to dělalo „Má vypsat produkty, které jsou posledně přihozené v objednávce :-)“ „Řadit se ma odposlední přihozené ceny.“ „Zapoměl jsem na řazení podle datumu ukončení. Cena se bere s tabulky order“ Pokud je někomu jinému jasné, co že to vlastně chceš, tak ho nechám vyniknout. Mně to jasné není. |
||
Časová prodleva: 14 let
|
0