Вы можете использовать соединения. См. объединение документов , в данном случае MySQL.
Что-то вроде этого должно сделать это:
SELECT table1.*, table2.*, table3.*
FROM table1
LEFT JOIN table2 ON table1.name = table2.name
LEFT JOIN table3 ON table1.name = table3.name
WHERE table1.name = "John";
Левое объединение будет по-прежнему выбираться из первой таблицы, даже если объединенная таблица не имеет соответствующей строки - вы получите NULL
в выбранных столбцах второй таблицы для тех строк, которые не совпадают.
Однако, в зависимости от ваших требований, это, возможно, не очень хорошо - я считаю, что он не будет извлекать строки из таблицы 2 или таблицы 3, где нет соответствующей строки для этого пользователя в таблице 1.
Как указал @ spencer7593 в комментарии ниже, вам, вероятно, следует делать это только в том случае, если вы уверены, что столбец name
уникален в каждой таблице, в противном случае вы можете генерировать несколько смехотворно огромных наборов результатов.