从第二个表中选择所有数据,其中name等于第一个表中的列值

时间:2017-12-14 20:16:37

标签: php mysql sql mysqli

我正在使用MySQL数据库,其中我的表格如下:

  1. 用户
  2. 1247483647
  3. 2147483613
  4. 2047483641
  5. Users中的列如下:

    1. USEREMAIL
    2. compId
    3. 如何构建一个SQL查询:

      a)从Users表中选择compId,其中userEmail等于通过mysqli prepared语句提供的电子邮件地址。 b)然后找到一个表格,其名称与compId相匹配,并从中选择所有数据?

      我到目前为止尝试过如下(无济于事):

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

      提前致谢。

1 个答案:

答案 0 :(得分:-1)

您必须从INFORMATION_SCHEMA.TABLES

构建SQL字符串
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,这对我有用。