Выбрать все данные из второй таблицы, где имя равно значению столбца из первой таблицы

0

Я работаю с базой данных MySQL, в которой у меня есть таблицы, названные так:

  1. пользователей
  2. 1247483647
  3. 2147483613
  4. 2047483641

Колонки в " Users:

  1. USEREMAIL
  2. CompID

Как я могу структурировать SQL-запрос, который будет:

a) Выберите compId из таблицы Users, где userEmail равен адресу электронной почты, предоставленному через подготовленный mysqli оператор. b) Затем найдите таблицу с именем таблицы, которая соответствует compId и выберет все данные из нее?

Я до сих пор старался сделать следующее (безрезультатно):

    $sql = "
    SELECT * FROM table_name
    WHERE table_name =
    (SELECT compId
    FROM Users
    WHERE userEmail = ?)
    ";

Заранее спасибо.

Теги:
mysqli

1 ответ

-2
Лучший ответ

Вы должны построить строку SQL из INFORMATION_SCHEMA.TABLES

select @querystring := CONCAT('SELECT * FROM ', table_name)
    from information_schema.TABLES
where TABLE_NAME =
(SELECT 
    compId
 FROM 
    Users
 WHERE 
    userEmail = {?})

PREPARE statement from @querystring;
EXECUTE statement

Я не самый удобный с PHP, но это работает для меня до тех пор, пока вы введете userEmail в {?}, Где я обозначен как параметр.

  • 0
    Может ли кто-нибудь объяснить отрицательный голос? Я пропустил вопрос? Я пытаюсь заработать очки репутации. Я проверил этот запрос и знаю, что он работает, пока он заменяет адрес электронной почты на {?} Мой вопрос: почему кто-то опроверг мой ответ и его вопрос? Есть ли что-то незаконное в этом? Я новичок здесь, так что, пожалуйста, ослабьте меня.
  • 1
    Просто размышления, но это может быть потому, что этот ответ как бы только помогает ОП в более глубокие проблемы дальше по линии. Это не только сайт для ответа на каждый вопрос людей / выполнения их желаний в соответствии с требованиями - это также для обучения и руководства о том, как все должно быть сделано. Иногда вам приходится балансировать, давая кому-то ответ, который он ищет, и тому, кому он отвечает, он должен искать. Есть несколько жестких и быстрых правил, не принимайте DV лично, в любом случае они стоят только -2, и (по большому счету) геймификация набранных очков является побочным эффектом для ...
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню