@lexstile

Как сделать вложенный запрос по списку id?

Есть таблица words с полями: id, word
idword
111слово 1
222слово 2
333слово 3
444слово 4
555слово 5
666слово 6

Есть таблица test с полями: id, word_id_1, word_id_2 (word_id_* = id из первой таблицы)
idword_id_1word_id_2
1111222
2111333
3111444
4111666

Можно ли сделать за один запрос следующее:
1. Выбираем из таблицы test записи, где word_id_1 = id; (цель - получить word_id_2);
Если бы здесь возвращалась одна запись, все было бы просто, здесь будет возвращаться от 1 до ~100 записей.
2. Получаем из таблицы words записи, где id = word_id_2 (получить информацию по каждому id из предыдущего шага);
public function getDetailPage($id) {
		$params = [
			'id' => $id, // id из таблицы words
		];
		return $this->db->row('SELECT * FROM words WHERE id = :id', $params);
	}
	public function row($sql, $params = []) {
		$result = $this->query($sql, $params);
		return $result->fetchAll(PDO::FETCH_ASSOC);
	}

Известно: id из таблицы words (в примере он равен 111)
Конечная цель: получить данные по изначально известному id из таблицы words, а также получить информацию по привязанным к нему в таблице test элементам.
Все данные хранятся в первой таблице, во второй - только связи.
Если исходить из примера, должны придти данные из таблицы words по всем элементам, кроме id = 555.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
JOIN вам в помощь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы