::私は私のような何かを与えることを望んでいるだろう
SET @class = (
SELECT
id
FROM
class
WHERE
attending > CURDATE()
AND attending < CURDATE() + INTERVAL 2 DAY
);
SELECT
class_id,
NAME
FROM
images
WHERE
class_id = @class
AND image_path IS NULL
ORDER BY
NAME ASC
LIMIT 2;
:
SELECT
images.class_id,
images.NAME
FROM class
INNER JOIN images ON class.id = images.class_id
WHERE class.attending > CURDATE() AND class.attending < CURDATE() + INTERVAL 2 DAY
AND images.image_path IS NULL
ORDER BY images.NAME
LIMIT 2;
このような何か
編集:
SELECT
t.class_id,
t.name
FROM
(
SELECT
images.class_id,
images.NAME,
IF(@prevClassId = images.class_id, @classPosition := @classPosition + 1 , @classPosition := 0) rank,
@prevClassId := images.class_id
FROM (SELECT @prevClassId := NULL, @classPosition := 0) vars,class
INNER JOIN images ON class.id = images.class_id
WHERE class.attending > CURDATE() AND class.attending < CURDATE() + INTERVAL 2 DAY
AND images.image_path IS NULL
ORDER BY images.class_id
) t
WHERE t.rank < 2;
SQL FIDDLE DEMO
サンプルデータ(クラス表):
id class_name attending
1 one 4/29/2016
4 Four 4/29/2016
8 Eight 4/29/2016
13 Thirteen 4/29/2016
サンプルデータ(画像表):
id class_id name image_path
1 1 IMG_ONE IMAGE ONE PATH
2 4 Anna (NULL)
3 4 Bjorn (NULL)
4 4 C4 (NULL)
5 8 Alex (NULL)
6 8 Ceri (NULL)
出力:
class_id NAME
4 Bjorn
4 Anna
8 Ceri
8 Alex
現在の出力は何ですか? –
関連テーブルの 'create table code'を共有してください。また、あなたの現在の出力 – 1000111
申し訳ありませんが、現在の出力は動作しません - それはより仮想です! – huey