@Urukhayy

Рекомендуется ли делать такую выборку из базы?

SELECT * FROM table WHERE ID = (SELECT ID FROM second_table WHERE Name="Test")

Или лучше записать 1 раз ID в переменную (на сервере), и потом по ней выбирать?

И попутный вопрос. Можно ли в текстовую ячейку записать значение NOW() ?
  • Вопрос задан
  • 2398 просмотров
Решения вопроса 1
kilya
@kilya
back-end/front-end
1. может быть ты это имел ввиду?
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

А если у тебя выборка поменяется по вложенному запросу? Опять придется руками хардкодить значение в переменную?
Так делать нельзя, можно кешировать результат, это уже другой разговор.
2. Можно в текстовую записать NOW(). а зачем только?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@KIN1991
Python, PHP developer
SELECT * FROM table WHERE ID = (SELECT ID FROM second_table WHERE Name="Test")


Смотрите сами, чем больше у вас данных в искомой таблице тем дольше будет исполняться запрос. Это не есть хорошо когда при каждой интерации WHERE выполняется подзапрос. В вашем случае JOIN будет лучшим решением
Ответ написан
@hurgadan
Однозначного ответа нет на ваш вопрос. Зависит от размеров базы данных, наличии индексов и того, как часто вы выполняете подобный запрос.
Если запрос выполняется часто, сохраните ID и затем используйте его.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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