私はもはやそれを取得しません。クラブのサイトについては、クラブのすべてのピンボールマシンの概要を示したいと思います。 1 2つのテーブルmysql lleft joinは右のテーブルから最新のレコードを1つ使用できますか?
テーブルの1-キャビネット
cabid | owner | cabname |valid | description
--------------------------------------------------
1 | 3 | adams family | 1 | Lorem ipsum dolor sit amet
2 | 3 | Twilight zone | 1 | Lorem ipsum dolor sit amet
3 | 4 | AC/DC | 0 | Lorem ipsum dolor sit amet
4 | 5 | Lord of the Rings | 1 | Lorem ipsum dolor sit amet
表2 - 写真
photoid | cabid | ismain | photourl
-------------------------------------------------------------------
1 | 4 | 1 | fofofmasomfsaomfosa.jpg
2 | 4 | 0 | vdsnvnds89vds8vhsds.jpg
3 | 2 | 0 | v89ahv9sdvhs,jpg
4 | 2 | 0 | fsdfhsdfhsdavs.jpg
5 | 1 | 0 | sdv8ihsda98vhdsvs.jpg
etc
etc
持って、私は1つのクエリで有効な表1からすべてのキャビネットからの概要を説明したいん(有効= 1)。そして写真があれば、これを見せてください。ユーザがメイン画像として写真をマークした場合は、この1つは、示さなければ(ismainを)持っている(必ずしもすべてのキャビネットは写真を持っている)ismain DESCによって順と気にいらないようなそうでない場合は、最新の、PHOTOID ASC
私は今この
select c.*,p.*
from cabinets c
LEFT JOIN photos p USING (cabid)
where c.valid = '1'
GROUP by c.cabid
order by c.cabid DESC, p.ismain DESC, p.photoid ASC
LIMIT 5
しかし、それは間違った写真を示し、
は私が1つの速くクエリを可能にしたいものですか?
クエリが遅くなって以来、「SELECT *」を避けるべきだと聞いていましたか? – Noob
OPがすべての列を必要とする場合。select *またはselect .. col1、col2を使用します。パフォーマンスなども同じです。OPはいくつかの列しか必要とせず、これらの列が関連するインデックス – scaisEdge
に格納されている場合のみ違います。この場合、彼はデータベースのすべての値を必要としないので、特定の列を選択できる – Noob