これは、あるテーブルからモデル情報を取得し、別のテーブルから 1 つの画像を取得するクエリです。ORDER BY が DESC を並べ替える場所を取得するには、このクエリにどのような変更を加える必要がありますか? 写真のテーブルには、「並べ替え」という名前のフィールドがあります。各行のフィールドのデフォルト値は 0 です。ただし、1 つのランダムな行の値は 1 です。その特定の行を取得したいと考えています。ただし、ソート値が 1 の行がない場合でも、1 つの行をフェッチする必要があるため、WHERE sort=1 は使用したくありません。
$sql="SELECT tc.id,tc.alias,tc.firstname,tci.imagename
FROM ".$pre."models tc
INNER JOIN ".$pre."model_images tci ON tc.id=tci.userid
WHERE activated=1 AND sex=$sex AND city=$city AND published=1
GROUP BY tc.id ORDER BY firstname ASC";
前もって感謝します!
以下を使用して解決:
SELECT tc.id,tc.alias,tc.firstname,
(SELECT imagename FROM ".$pre."model_images WHERE userid= tc.id
ORDER BY sort DESC LIMIT 1) AS imagename
FROM ".$pre."models tc
WHERE tc.activated=1 AND tc.sex=1 AND tc.city=2 AND tc.published=1
ORDER BY tc.firstname ASC