Sorgu sonuçlarını montaj CodeIgniter php

1 Cevap php

Şöyle Benim kurulum:

Table 'data': 'title','body',...,'user_id',...  
Table 'users': 'user_id','some_val'...

Temelde ben 'kullanıcıların tablosundan' some_val 'çekme böylece şekilde tablolar' veri 've User_id alanında' kullanıcıları 'katılmak istiyorum. Benim sorunum 'veri' tablosundaki her User_id 'kullanıcıların tabloda karşılık gelen bir giriş olan değil olmasıdır.

CodeIgniter / php ile ben sonuçta data.user_id = users.user_id katılmadan 'kullanıcıların tablosundan tüm' some_vals 'içeren değerleri bir sonuç dizisi monte etmek istiyorum. Kullanıcıların tablodaki veri tablosunda ama değil bir User_id orada var AMA, benim sonuçlar diziye bazı varsayılan değer eklemek için (ve umarım bu dizi veri tablosunda User_id yıllardan olarak aynı sırayla olabilir) istiyorum.

Umarım bu çok belli değildi. Herhangi bir fikir?

1 Cevap

Ne yapmak isteyeceksiniz denen bir left join . Essentially, this takes all of the rows of data ve users masa eşleşir. Dışında, data bir eşleştirme user_id, sadece yükler null bu sütunlar için yoksa. Bu null s ile başa çıkmak için, (1234 olabilir bazı değere sahip bir null yerine coalesce işlevini kullanabilirsiniz eğer Bu sayısal, ama ben sadece) 'DefaultVal' demo amaçlı seçti.

Neyse, her şey çok gibi bir araya geliyor:

select
    coalesce(u.some_val, 'DefaultVal') as some_val
from
    data d
    left join users u on
        d.user_id = u.user_id