İki karmaşık sorguları birleştirme

0 Cevap php

Ne yapıyor sona erdi iki SQL sorguları alarak ve sonuçları filtrelemek için PHP array_intersect() kullanıyordum:

$sql1 = 'SELECT z.*, u.username, u.user_colour, u.username_clean, u.user_avatar, u.user_avatar_type
    FROM ' . ZEBRA_TABLE . ' z, ' . USERS_TABLE . ' u
    WHERE (( z.user_id = ' . $user->data['user_id'] . '
        AND z.friend = 1
        AND u.user_id = z.zebra_id )
            OR ( z.zebra_id = ' . $user->data['user_id'] . '
                AND z.friend = 1
                AND u.user_id = z.user_id ))
    ORDER BY u.username_clean ASC';

$sql2 = 'SELECT z.*, u.username, u.user_colour, u.username_clean, u.user_avatar, u.user_avatar_type
    FROM ' . ZEBRA_TABLE . ' z, ' . USERS_TABLE . ' u
    WHERE (( z.user_id = ' . $user_id . '
        AND z.friend = 1
        AND u.user_id = z.zebra_id )
            OR ( z.zebra_id = ' . $user_id . '
                AND z.friend = 1
                AND u.user_id = z.user_id ))
    ORDER BY u.username_clean ASC';

Her iki sorgularının yapısı aynıdır ve tek fark $user->data['user_id] (first person) ikinci sorguda $user_id (ikinci kişi) ile değiştirilir olduğunu. Ben hem kullanıcılar hem de ortak arkadaş almak istiyorum. Ben iki sorgu kullanabilirsiniz ve array_intersect() aramak zorunda kalmamak için herkes tek bir sorgu içine bu birleştirme misiniz?

0 Cevap