Да, можете, просто убедитесь, что вложенный запрос не возвращает более одной строки. Добавьте LIMIT 1 в конец вложенного запроса, чтобы исправить это. Также убедитесь, что он всегда возвращает строку, иначе основной запрос не будет работать.
Если вы хотите сопоставить несколько строк во вложенном запросе, вы можете использовать либо IN
, например:
char* sql = "select name from table WHERE id IN (select full_name from second_table where column = 4);"
или вы можете использовать JOIN
:
char* sql = "select name from table JOIN second_table ON table.id = second_table.full_name WHERE second_table.column = 4"
Обратите внимание, что метод IN
может быть очень медленным, и что JOIN
может быть очень быстрым, если индексировать по правым столбцам