Autor Zpráva
wifi_jirka
Profil *
Zdravím,
prosím, existuje nějaký příkaz do SQL dotazu, který by v následujícím výpisu sloučil dvojici odpovídajících řádků do jednoho ?

Celé jsem to pracně dal dhoromady třemi INNER JOINY z wordpresu. Hlavní problém mi působí, že wordpress do jedné tabulky ukládá jméno a příjmení na dva rozdílné řádky rozlišené hodnotami last:name, first_name


a_meta_value a_post_id b_user_nicename b_display_name b_ID c_meta_key c_meta_value

UBI 263 ubi UBI 635 first_name Josef
UBI 263 ubi UBI 635 last_name Urbiš

jiriS 263 jiris jiriS 641 first_name jiri
jiriS 263 jiris jiriS 641 last_name sivec
Tori
Profil
GROUP_CONCAT, a řádky seskupovat podle ID uživatele.
Kajman
Profil
Např. dvakrát připojíte joinem tu samou tabulku (s různými aliasy). Jednou s podmínkou na jméno a jednou na příjmení.
wifi_jirka
Profil *
Nedaří se mi na to přijít... pokud můžete pomoci modifikovat následující SQL dotaz, budu velmi vděčný :

            SELECT
            a.meta_value  AS a_meta_value, a.post_id AS a_post_id, 
            b.user_nicename AS b_user_nicename, b.display_name  AS b_display_name, b.ID AS b_ID,
            c.meta_key AS c_meta_key, c.meta_value AS c_meta_value 
            FROM wp_postmeta AS a
            RIGHT JOIN wp_users AS b ON a.meta_value= b.display_name
            INNER JOIN  wp_usermeta  AS c ON c.user_id=b.ID
            WHERE a.post_id='$promenna' AND (c.meta_key='last_name' OR c.meta_key='first_name')
            ORDER BY b.ID
Kajman
Profil
wp_users
INNER JOIN  wp_usermeta  AS c1 ON c1.user_id=b.ID AND c1.meta_key='last_name'
INNER JOIN  wp_usermeta  AS c2 ON c2.user_id=b.ID AND c2.meta_key='first_name'
wifi_jirka
Profil *
Kajman ... díky
přesto ještě poprosím jestli byste mi nepomohl napsat kompletní dotaz. Nějak mi to nefunguje, nemůžu najít důvot. Přiznám se že už je to na mě trošku složité :-(
Kajman
Profil
SELECT a.meta_value    AS a_meta_value,
       a.post_id       AS a_post_id,
       b.user_nicename AS b_user_nicename,
       b.display_name  AS b_display_name,
       b.ID            AS b_ID,
       c1.meta_value   AS prijmeni,
       c2.meta_value   AS jmeno
FROM   wp_postmeta AS a
RIGHT  JOIN wp_users AS b
ON     a.meta_value = b.display_name
INNER  JOIN wp_usermeta AS c1
ON     c1.user_id = b.ID
       AND c1.meta_key = 'last_name'
INNER  JOIN wp_usermeta AS c2
ON     c2.user_id = b.ID
       AND c2.meta_key = 'first_name'
WHERE  a.post_id = '$promenna'
ORDER  BY b.ID
wifi_jirka
Profil *
díky!, funguje to bezvadně.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: