2016-04-08 11 views
0

Bir php sayfası oluşturdum, böylece her biri veri girişinde verilen 1 koşulu temel alarak veritabanı sorgulama ile ayrılmış birden çok geçici tabloya giren veri girişi için birden çok seçenek vardır. Yani, eğer yaş> 10 ise ve> 6 ve boy> 60 olan ayakkabılar varsa, tablo0, tablo1 ve tablo2 olmak üzere üç geçici tablo olacaktır, burada tablo0 sadece veri yaşı> 10 ve tablo1 sadece veri toplar> 6'dır ve tablo 2 sadece veri yüksekliği> 60.Nasıl mysql birden çok tabloya kesişim

Bunları kesiştirmeyi merak ediyorum. Bu nedenle, yalnızca tüm gereksinimlere sahip olan sonuçları> 10 yaşta ve 6> 6 ve yüksekliği> 60 olan ayakkabılarla alacağım. "WHERE EXISTS" deyimini kullanıyorum aşağıda ama işe yaramıyor. hantal hale bir tablonun birincil anahtarı dayanmadan böyle sorgular, bu yüzden bir birincil anahtar eklemek öneriyoruz

SELECT * 
FROM table0 t0 
WHERE EXISTS 
    (SELECT * 
    FROM table1 t1 
    WHERE EXISTS 
     (SELECT * 
      FROM table2 t2 
      WHERE t0.age = t1.age = t2.age 
      AND t0.shoesize = t1.shoesize = t2.shoesize 
      AND t0.height = t1.height = t2.height)); 
+0

Örnek veriler sağlayabilir misiniz? –

+0

veri 6 sütun yaş, cinsiyet, ayakkabı, kilo, boy, gözlerden oluşmaktadır. Veritabanındaki bir tabloda saklanır ve geçici tablolar, her biri kendisine uygulanan 1 koşulla birlikte orijinal tablonun yalnızca alt kümeleridir. – Steven

cevap

0

Not. sözü

ihtiyacınız sorgu zaten teşebbüs ne olduğunu oldukça yakındır:

SELECT * 
FROM table0 t0 
WHERE EXISTS (
      SELECT 1 
      FROM table1 t1 
      WHERE t1.age = t0.age AND t1.gender = t0.gender 
      AND t1.shoesize = t0.shoesize AND t1.weight = t0.weight 
      AND t1.height = t0.height AND t1.eyes = t0.eyes) AND 
     EXISTS (
      SELECT 1 
      FROM table2 t2 
      WHERE t2.age = t0.age AND t2.gender = t0.gender 
      AND t2.shoesize = t0.shoesize AND t2.weight = t0.weight 
      AND t2.height = t0.height AND t2.eyes = t0.eyes) 

Not: Yukarıdaki sorgu değerlerin hiçbiri NULL olması durumunda çalışacaktır.

+0

Bu işe yaramıyor:/Sorgunun uygun olmayan sözdizimine (yani nesnede olmayan fetch_array) sahip bir hatayla karşılaşıyorum – Steven

+0

@Steven sorguda herhangi bir fetch_array içermiyor, bunun nedeni nasıl başarısız olabilir? –

+0

Sorguyu bir mysqli sorgu deyiminde kullanıyorum ve sonucu almak için fetch_array, sorgu deyimi geçersiz olduğunda başarısız olur. – Steven