Я получил 2 стола
рассказы
id | Story Name | User id
----+---------------+-----------
2 | Name | 12
3 | Name | 13
4 | Name | 12
5 | Name | 12
--------------------------------
линии
id | Story Line | story_id | started_date
----+---------------+----------+------------------------
2 | Name | 2 | 2017-02-17 18:20:14
3 | Name | 2 | 2017-02-18 18:20:14
4 | Name | 3 | 2017-02-18 18:20:14
5 | Name | 2 | 2017-02-19 18:20:14
----------------------------------------------------------
Мне нужно получить первую строку из таблицы строк (ASC начального_даты) вместе с таблицей историй
SELECT story.* from stories as story WHERE story.id=2
Используя левое соединение
SELECT story.*
from stories as story
LEFT JOIN lines as line
ON lines.story_id=story.id
WHERE story.id=2
Вот как получить первую запись из таблицы строк?
заранее спасибо
Вы можете попробовать использовать ORDER BY
в сочетании с LIMIT
Вот. В этом случае мы хотим упорядочить по возрастанию (порядок по умолчанию в MySQL) по started_date
от lines
таблица, сохраняя при этом только одну запись, соответствующую первой, как вы ее определили.
SELECT story.*, line.*
FROM stories AS story
LEFT JOIN lines AS line
ON lines.story_id = story.id
WHERE story.id=2
ORDER BY lines.started_date
LIMIT 1
Если вы хотите получить самую раннюю запись для всех историй, вам придется использовать подзапрос для этого:
SELECT s.*, l1.*
FROM stories AS s
LEFT JOIN lines l1
ON s.story_id = l1.story_id
INNER JOIN
(
SELECT story_id, MIN(started_date) AS first_date
FROM lines
GROUP BY story_id
) AS l2
ON l1.story_id = l2.story_id AND
l1.started_date = l2.first_date
Попробуй это
SELECT story.*
from stories as s
LEFT JOIN lines as l
ON lines.story_id=story.id
WHERE story.id=2
ORDER BY s.started_date ASC
LIMIT 1