Aynı fiyata üç farklı bira satan tüm barlar bulmak için sorgu

1 Cevap php

Bulmak için sorgula "aynı fiyata üç farklı bira satmak Tüm barlar?"

Benim Masalarız

Sells(bar,beer,price) - bar - foreign Key.. Bars(name,addr) - name primary key.

Ben böyle bir şey düşündüm ama bu dosent iş gibi görünüyor ...

 Select A.bar As bar , B.bar as bar  
 From Sells AS A, Sells AS B 
 Where A.bar = B.bar and A.beer <> B.beer  
 Group By(A.beer) 
 Having Count(Distinct A.beer) >= 2

Bu doğru SQL sorgu?

1 Cevap

Ben bunu bu şekilde yapardı:

Select A.bar
From Sells AS A
JOIN Sells AS B ON (A.bar = B.bar AND A.price = B.price 
    AND A.beer <> B.beer)
JOIN Sells AS C ON (A.bar = C.bar AND A.price = C.price 
    AND A.beer <> C.beer AND B.beer <> C.beer)

Özellikle MySQL olarak, birleştirme çözeltisi GROUP BY 'den daha etkili olması muhtemeldir.