SELECT s párováním hodnot v tabulce – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

SELECT s párováním hodnot v tabulce – MySQL – Fórum – Programujte.comSELECT s párováním hodnot v tabulce – MySQL – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
fix0
Stálý člen
16. 10. 2020   #1
-
0
-

Ahoj všem, už mám nervy v kýblu z jedné blbosti.

Mám tabulku, vypadá takto.

Připojen obrázek.Chtěl bych, aby výsledek SELECTu vypadal takto.

Připojen obrázek.

Pokud sloupec podilu_celkem IS NULL, tak mu přiděl hodnotu podilu_celkem z jiného řádku. To konkrétné z takového řádku, pro který platí, že jeho order_product_id == variant_id toho řádku, který má hodnotu NULL.

Rozumíte mi? Vypadá to jednoduše, ale nejspíš jste se s tím nikdy nikdo nikdy nepotkal a tudíž se modlím, aby to vůbec nějak  kloudně šlo zařídit.

Díky moc všem za rady a tipy,

Nahlásit jako SPAM
IP: 31.30.175.–
fix0
Stálý člen
16. 10. 2020   #2
-
0
-

Vlastně bych potřeboval JOIN v rámci jedné tabulky. :-D

Nebo si možná oprášit trigery a pohledy a nedávat ty data do jedné tabulky, ale cíleně je držet oddělené, jen je pak právě spojit JOINem. Ale to je na mě moc složité. :-D

Nahlásit jako SPAM
IP: 31.30.175.–
Kit+15
Guru
17. 10. 2020   #3
-
+1
-
Zajímavé
fix +

#2 fix
Tak si udělej JOIN se stejnou tabulkou.

Nahlásit jako SPAM
IP: 46.135.74.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
fix0
Stálý člen
17. 10. 2020   #4
-
0
-

Super, zkusil bych to, ale zasekl jsem se hned na začátku.

Máš ještě nějaký nápad s tímto?

SELECT *

FROM (SELCET bla bla) AS vypis_k_parovani

LEFT JOIN vypis_k_parovani ON vypis_k_parovani.order_id = vypis_k_parovani.podilu_celkem

Myslel jsi to tak, že ? Akorát sis myslel, že mám fyzickou tabulku. Takhle to ale musí jít nějak také ne?

Píše to totiž:
#1146 - Table 'database.vypis_k_parovani' doesn't exist
 

Rád bych jen četl data, nic do databáze neukládal, jako další tabulky, bude-li to nezbytné. Tak tu tabulku můžeme v rámci dotazu fyzicky vytvořit, spárovat, přečíst PHP, a zase ji za sebou smazat, ale moc se mi to nezdá, jak dobrý postup. :-)

Nahlásit jako SPAM
IP: 31.30.175.–
Řešení
Kit+15
Guru
17. 10. 2020   #5
-
+1
-
Zajímavé
fix +
Vyřešeno Nejlepší odpověď

#4 fix 

SELECT * FROM Nastaveni
    LEFT JOIN Nastaveni AS vypis_k_parovani
    ON vypis_k_parovani.order_product_id=Nastaveni.variation_id
    ...
Nahlásit jako SPAM
IP: 37.188.131.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
fix0
Stálý člen
17. 10. 2020   #6
-
0
-

Kde mám vzít tabulku "Nastaveni", jak jsi na ni přišel. Žádnou takovou nemám. Mám to přece všechno v jedné tabulce, která je načtená v paměti, vzpomínáš? :-) Je tam vnořený SELECT

Mrkni prosím znovu na moji předchozí zprávu, zapomněl jsem tam dodat chybovou hlášku.

#1146 - Table 'database.vypis_k_parovani' doesn't exist

Nahlásit jako SPAM
IP: 31.30.175.–
MilanL+1
Grafoman
17. 10. 2020   #7
-
0
-

#6 fix
ty tabulky nesmí mít stejné jméno v rámci selectu musíš alespoň u jedné použít alias tz "tabulka" AS "alias" někdy tam ten AS ani být nemusí stačí "tabulka" "alias"

v tom je základní pointa té chyby

Nahlásit jako SPAM
IP: 185.112.167.–
Kit+15
Guru
17. 10. 2020   #8
-
0
-

#6 fix
Však v záhlaví požadované tabulky máš napsáno "Nastaveni" a jiný název jsem nenašel. Používám názvy, které jsi dodal.

Nahlásit jako SPAM
IP: 37.188.131.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
fix0
Stálý člen
17. 10. 2020   #9
-
0
-

Lidi STOP. Oba si z nějakého důvodu pořád myslíte, že mám dvě tabulky. Já mám tabulku jen jednu. Resp žádnou. Mám SELECT a chci párování řešit v rámci toho SELECTu,

SELECT *

FROM (SELECT bla bla, toto jsou moje data, nemám žádnou tabulku) AS vypis_k_parovani

LEFT JOIN vypis_k_parovani ON vypis_k_parovani.order_id = vypis_k_parovani.podilu_celkem

Toto je moje virtuální tabulka (jmenu se vypis_k_parovani):

FROM (SELCET bla bla, toto jsou moje data, nemám žádnou tabulku) AS vypis_k_parovani

Tabulka "nastaveni" neexistuje, není to název tabulky, je to v phpmyadminu jen nějaký odkaz na nějaké nastavení profilování, rollbacku a podobných blbostí, které jsem nikdy nepoužil. :-)
 

Nahlásit jako SPAM
IP: 31.30.175.–
Kit+15
Guru
17. 10. 2020   #10
-
+1
-
Zajímavé
fix +

#9 fix
Hmm, vidím, že máš skutečně nervy v kýblu. Co kdyby sis tu tabulku vytvořil? Třeba jen jako TEMPORARY.

Nahlásit jako SPAM
IP: 37.188.131.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
fix0
Stálý člen
17. 10. 2020   #11
-
0
-

Byla to pro mě fuška, ještě tam bylo několik háčků, ale podařilo se mi to odladit správně.

Děkuji pěkně.

Nahlásit jako SPAM
IP: 31.30.175.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 12 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý