2016-04-11 5 views
0

SQL için biraz yeniyim, bu yüzden bazı basit şeyleri öğrenmeye çalışıyorum.Belirli bir satır için birden çok SQL tablosunu araştırdıktan sonra satırın yanı sıra tablo adı olarak dön

Şu anda uygulamamda farklı erişim seviyeleri için birden çok tablom var (Müşteriler, Temsilciler, Yöneticiler).

Bir kullanıcı adı bu tablolar arasında paylaşılamaz. Tutulduklarım, kullanıcı adına göre kullanıcı satırını seçmeye çalışıyor.

Kullanıcılar için yalnızca bir tablo olsaydı bunu nasıl yapacağımı kolayca bilirdim, ancak aynı anda birden fazla tablonun nasıl aranacağından emin değilim.

Ayrıca bir kullanıcı adı bulunursa, kullanıcı adının içinde bulunduğunu tablonun adını döndürmenin bir yolu var mı?

Çok teşekkür ederim! Tüm tablolar düzenleri varsayarsak

cevap

0

aynıdır: Yalnızca bir satır sadece var olabilir kullanıcı xxx olarak döndürülür alacak gibi

SELECT * 
FROM (
     SELECT 'customers' tn, * 
     FROM customers 
     UNION ALL 
     SELECT 'managers' tn, * 
     FROM managers 
     UNION ALL 
     SELECT 'representatives' tn, * 
     FROM representatives 
     ) q 
WHERE username = @myusername 
2

Basit BİRLİĞİ

SELECT 'table1' as tab, c1, c2, c3 FROM table1 WHERE uid='xxx' 
UNION 
SELECT 'table2' as tab, c1, c2, c3 FROM table2 WHERE uid='xxx' 
UNION 
SELECT 'table3' as tab, c1, c2, c3 FROM table3 WHERE uid='xxx' 

gereken tüm olabilir tablolardan biri, ilgilendiğiniz tüm sütunları ve tablo adınızı içeren ilk sütunu ekleyin