2つのテーブルがあります。SQL JOINと2番目のテーブルの条件付きリミット結果
ポートフォリオ:
+----+-------+--------------+
| id | name | created_date |
+----+-------+--------------+
| 1 | Port 1| 2017/08/12 |
+----+-------+--------------+
| 2 | Port 2| 2017/08/14 |
+----+-------+--------------+
| 3 | Port 3| 2017/08/15 |
+----+-------+--------------+
写真:
結果:
を私は以下のような結果を取得するために照会することができますどのように+----+------------+--------------+--------------+-----------------+
| id | Port_name | port_id | user_id | created_at |
+----+------------+--------------+--------------+-----------------+
| 1 | Port 1 | 1 | null | 2017/08/10 |
+----+------------+--------------+--------------+-----------------+
| 2 | Port 2 | 2 | null | 2017/08/11 |
+----+------------+--------------+--------------+-----------------+
| 3 | Port 3 | 3 | null | 2017/08/12 |
+----+------------+--------------+--------------+-----------------+
| 4 | Port 1 | 1 | 1 | 2017/08/13 |
+----+------------+--------------+--------------+-----------------+
| 5 | Port 2 | 2 | 1 | 2017/08/14 |
+----+------------+--------------+--------------+-----------------+
| 6 | Port 3 | 3 | 1 | 2017/08/15 |
+----+------------+--------------+--------------+-----------------+
| 7 | Port 2 | 2 | 1 | 2017/08/16 |
+----+------------+--------------+--------------+-----------------+
| 8 | Port 3 | 3 | 1 | 2017/08/17 |
+----+------------+--------------+--------------+-----------------+
| 9 | Port 2 | 2 | 1 | 2017/08/18 |
+----+------------+--------------+--------------+-----------------+
|10 | Port 3 | 3 | 1 | 2017/08/19 |
+----+------------+--------------+--------------+-----------------+
NOT NULL
- のuser_idがある:私は何をしたいか
+---------+------------+----------------+-----------------+ | Port_id | port_name | photo_id | photo_created_at| +---------+------------+----------------+-----------------+ | 2 | Port 2 | 7 | 2017/08/16 | +---------+------------+----------------+-----------------+ | 3 | Port 3 | 8 | 2017/08/17 | +---------+------------+----------------+-----------------+
はポートフォリオ写真テーブルとテーブル、そして写真いくつかの条件とテーブルの限界結果を結合です"second secondest"。
2017/08/11
、2017/08/12
、2017/08/16
、2017/08/19
:
は "二番目に古い" の意味は、例えば、私は4つの日付時刻を持っています。
この場合、「2番目に古い」は2017/08/12
です。私は自分で試してみました
:
このためSELECT p.id as Port_id,
p.name as Port_name,
ph.id as photo_id,
ph.created_at as photo_created_at
FROM "Portfolios" AS p
LEFT JOIN (
SELECT *
FROM "Photos"
WHERE user_id IS NOT NULL
ORDER BY created_at ASC
LIMIT 1 OFFSET 1) as ph
ON p.id = ph.port_id;
とグーグルが、私の問題を解決するためには何も見つかりません。
助けが必要ですか? 進歩に感謝!
を、どのように '2017/08/12' "半最古" とは?あなたは「二番目に古い」という意味ですか? – user2877959
@ user2877959はい、私は「二番目に古い」という意味です。 – javimuu
大丈夫です。しかし、私はまだあなたの望む結果を理解していません。なぜポートフォリオ1のエントリがないのですか?そして、写真#7はポートフォリオ2で2番目に古い写真ですか? #5ではないでしょうか? ... – user2877959