yılında
SELECT *
FROM
(SELECT *
FROM ROOMS R
WHERE R.Prix<'50') FRM
JOIN
(SELECT *
FROM
(SELECT *
FROM HOTELS H
WHERE H.CatH=2) FH
JOIN
(SELECT *
FROM RESORTS R
WHERE TypeS='montagne') FR
ON FH.NS=FR.NS) FRH
ON (FRH.NS=FRM.NS AND FRH.NH=FRM.NH);
Teşekkür:
ardından
sorgusu olur. Seni çok Sorgunuzla Karartılmış ve vermedi çünkü
ns
ve
nh
sütun hem ihtiyaç tablolar sadece
ns
kolon kullanılarak katıldı gereken hangi tamamen emin değilim ve hangi
SELECT *
FROM rooms rm
JOIN hotels ht ON ht.ns = rm.ns AND ht.nh = rm.nh
JOIN resorts rs ON rs.ns = ht.ns
WHERE rm.prix < 50
AND ht.cath = 2
AND ss.types = 'montagne';
: Sorgunuzda basitleştiirlebilir Tablo tanımlarını göster.
Alternatif olarak, birleştirilen tablolardaki kısıtlamaları birleştirme durumuna taşıyabilirsiniz. İç Hiç bir dış o değiştirmek istiyorsanız kullandığınız rağmen gerekli olabilir katılır için bu gerekli değildir katılmak:
SELECT *
FROM rooms rm
JOIN hotels ht ON ht.ns = rm.ns AND ht.nh = rm.nh AND ht.cath = 2
JOIN resorts rs ON rs.ns = ht.ns AND rs.types = 'montagne'
WHERE rm.prix < 50;
Ayrıca sayılar ve dizeleri karşılaştırmak gerekir. rooms.prix
'un bir sayı sütunu olduğunu kabul ederseniz, R.Prix<'50'
durumu yanlıştır. Numarayı r.prix < 50
ile karşılaştırmanız gerekmektedir. Lütfen en azından bu tablo yapılarının ne olduğuna dair bir ipucu verin. Ayrıntılar olmadan yardımcı olamaz. –
Neden bu kadar çok alt sorgu var? Neden tablolara katılmıyorsun? –