PHP Mysql İç İçe Sorgu Sorunu
-
Hocalar iç içe sorguda amacım tbl_emlak tablosundan fiyat ı en ucuz olan 3 taneye ait fid değerini alıp, tbl_resim tablosunda ona eşit gelen id yi çekmek. Sorguda IN yerine = diyince ve limit 1 yapınca çalışıyor fakat limit 3 diyince hata veriyor. içteki sorgu tek başına çalışıyor IN de sıkıntı var sanırım iç içe döngünün doğru çalışması için sorgu nasıl olmalı ?
<?php
require "config.php";
$data->query("select id from tbl_resim where id IN (select fid from tbl_emlak where satkir='Satılık' ORDER BY fiyat ASC LIMIT 3)");
while($result = $data->object()){
echo $result->id . "<br>";
}
?>
-
select id from tbl_resim inner join tbl_emlak on tbl_emlak.id=tbl_resim.id order by tbl_emlak.fiyat limit 3
şöyle bi denermisin
-
çalışmadı hocam
-
Limit 0,3 yapsan hocam ?
-
SELECT ID FROM tbl_resim INNER JOIN (SELECT MIN(tbl_emlak.fiyat) FROM tbl_emlak WHERE tbl_emlak.fiyat > 0 GROUP BY ID) ON tbl_emlak.id = tbl_resim.id ORDER BY tbl_emlak.ID LIMIT 3
-
limit 0,3 çalışmadı. verdiğin kodda tbl_emlak.id vardı o fid olacaktı sanırım ama o da çalışmadı hocam. başka fikir var mıdır ?
-
çözdüm cevap:
SELECT tbl_resim.id
FROM tbl_resim INNER JOIN
tbl_emlak ON tbl_resim.id = tbl_emlak.fid
WHERE tbl_emlak.satkir = 'Satılık' ORDER BY tbl_emlak.fiyat ASC LIMIT 3