gpt4 book ai didi

php - 来自另一个数据库的 MySQL 子查询,其中表名取决于主查询

转载 作者:可可西里 更新时间:2023-11-01 08:40:09 25 4
gpt4 key购买 nike

您好,我正在尝试从另一个数据库中子查询表(名称:table_guest_id),其中表名称中的 id 取决于主查询。这是我的数据库的设置:

  • 三张表:events, profile, table_guest_id
  • 两个数据库:main 和 guest(下面的 dbName 只是为了清楚)
  • 主要包含:事件和简介
  • 客人包含:table_guest_id(其中 id = e.ID)

这是我的sql代码:

    public function getListAttendee($user)
{
$sql = "SELECT p.name e.user, e.ID, e.date
FROM events e, profile p
WHERE p.user_id=e.user AND e.event_date >= CURDATE()
AND (SELECT COUNT(*)
FROM dbName.table_guest_[??note: need to insert e.ID??] a
WHERE a.event_id=e.ID AND a.user_id='{$user}' AND
a.status='invited') > 0";
}

我已经在将插入 ID 或 e.ID 的位置添加了注释,但它还没有用。如果您对如何子查询表名称取决于主查询值的表有不同的解决方案,请告诉我。这个想法是否可行?

最佳答案

看来您正在尝试对 SQL 表名执行变量替换。

  FROM dbName.table_guest_[??note: need to insert e.ID??] a 

您不能直接在 SQL 中执行此操作™。您需要编写 php 代码来生成该表名,或者使用 MySQL 团队称为 prepared statements. 的字符串处理功能。

如果您的不同数据库托管在同一台 MySQL 服务器上,您可以编写一次引用多个数据库的查询。只需提供数据库名称和表名称即可。例如,如果您有数据库 db1db2,您可以这样做。

 SELECT whatever
FROM db1.events e
JOIN db2.user_118 u ON whatever = whatever

关于php - 来自另一个数据库的 MySQL 子查询,其中表名取决于主查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34660036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com