2016-10-12 12 views
-1

指定されたstall_idのLEFT JOINでtenant_idのMAX値を見つける方法はありますか?LEFT JOINでSQL Maxを使用するにはどうすればよいですか?

$sql = "SELECT * FROM stall s 
     LEFT JOIN tenant t 
     ON t.stall_id = s.stall_id 
     LEFT JOIN rent r 
     ON r.tenant_id = t.tenant_id AND r.rent_status = 1 
     WHERE s.stall_id = 1"; 
+0

単に「select max(rent_status)...」にしないのはなぜですか? – jarlh

+0

MAX値かCountかを尋ねていますか?私は他のテーブルから他の値を表示しているので、 – Kushan

+0

です。 –

答えて

0

は、あなたはこの1つのようにしたいですか: -

SELECT * FROM stall s 
    LEFT JOIN tenant t 
    ON t.stall_id = s.stall_id 
    LEFT JOIN rent r 
    ON r.tenant_id = t.tenant_id AND r.rent_status = 1 
    WHERE s.stall_id = 1 ORDER BY r.tenant_id desc LIMIT 1 
+0

私は表示したいものを推測して、非常に知的な人です。 –

0

私はあなたがrent_statusフィールドがブール値(1または0)になりそうだとして、この場合にはMAX()を使用する必要はないと思います。つまり、簡単なINNER JOINがこのトリックを行うことになります。

SELECT * FROM `stall` AS s 
INNER JOIN rent AS r ON r.stall_id = s.id AND r.rent_status = 1 
WHERE s.stall_id = 1 
関連する問題