嗨,我正在尝试从另一个数据库中查询一个表( name : table_guest_id),其中表名的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将被插入的位置,但是它还没有工作。如果您有不同的解决方案来查询表的名称取决于主查询值的表,请告诉我。这个想法可能吗?
发布于 2016-01-07 17:22:48
似乎您正在尝试对SQL表名执行变量替换。
FROM dbName.table_guest_[??note: need to insert e.ID??] a 您不能在SQL中直接执行™。您需要编写php代码来生成表名,或者使用MySQL团队称为http://dev.mysql.com/doc/refman/5.7/en/sql-syntax-prepared-statements.html的字符串处理特性。
如果您的不同数据库驻留在同一台MySQL服务器上,则可以一次编写引用多个数据库的查询。只需给出数据库名和表名即可。例如,如果您有数据库db1和db2,您可以这样做。
SELECT whatever
FROM db1.events e
JOIN db2.user_118 u ON whatever = whateverhttps://stackoverflow.com/questions/34660036
复制相似问题