2016-03-28 17 views
0

Bir Kullanıcılar tablo vardır: Birden fazla testler tablolarMySql - Çoklu tablolarda otomatik değişime başvuru yapabilirsiniz mı?

UserId (int) 
DeleteSuspended (tinyint 0=ok, 1=delete, 2=suspended) 
Email (varchar) 
etc 

, örneğin testhistory:

UserId (the same as the one above) 
DeleteSuspended (this is the one I want linked) 
Mark (a test score) 

Ben Test tablolarla bir sürü iş yapmak, ancak her seferinde ben DeleteSuspended kontrol etmeniz gerekir Bu yüzden o tabloda bu değere sahip olmak en iyisidir. Ancak, kullanıcı genel olarak, yani Kullanıcı tablosuna göre silinir veya askıya alınır.

Sorum şu ki. DeleteSuspended, Kullanıcı tablosundaki birine bağlanabilir. Yani, Kullanıcı tablosundaki DeleteSuspended değiştirdiğinizde, tüm test tablolarında tüm DeleteSuspended günceller, yani test tabloları DeleteSuspended etkilerini Kullanıcılar tablosunda ana olanı için geçerlidir?

+0

'DeleteSuspended' sütunu iken bir performans sorunu vardı mı test masasında değil mi? Sorgunuzda basit bir JOIN kullandığınızda, diğer tablolardan tüm sütunlara erişebilirsiniz. [Prematüre optimizasyonu] çalıştırmayın (http://stackoverflow.com/questions/385506/when-is-optimisation-premature). – Progman

+0

Herhangi bir performans isabetinin farkında değilim. Php yazmak için sadece hantal oldu. Katılmayı anlamıyorum. Aynı SQL deyimi ile birden çok tablo ile şeyler yapabilir miyim? (Şimdi JOIN'i arıyorum.) – Rewind

cevap

0

Yanıt: Birden çok seçim kullanarak aşağıdakileri yaptım. Bu en iyi yaklaşımsa lütfen yorum yapın.

Test resminden Silinenleri kaldırdım.

ben olmayan askıya kullanıcılardan Testi puanları almak istiyorsanız Sonra mesela, çoklu seçim kullanmak sadece (yani DeleteSuspended = 0)

SELECT 
    t.Mark 
FROM 
    users u, testhistory t 
WHERE 
    u.DeleteSuspended = 0 
İlgili konular