我试图做这样的事情:

SELECT
fk_activity_id AS KeyId,
data,
created_on,
(SELECT
        data
    FROM
        activity_queue_data
    WHERE
        activity_queue_data.key = 'data'
            AND activity_queue_data.activity_data_id = KeyId)
FROM
    activity_queue_data
WHERE
    activity_queue_data.key = 'filename'
LIMIT 100;


问题我有这样的表:

mysql - 在其他查询中查询-LMLPHP

和信息这样的存储

mysql - 在其他查询中查询-LMLPHP

这是旧版代码,我无法修改此代码...

但是我想在同一查询中获取每个文件的内容和名称...任何想法... ???

最佳答案

如果要查询,则需要表别名和合格的列名:

SELECT aqd.fk_activity_id AS KeyId, aqd.data, aqd.created_on,
       (SELECT aqd2.data
        FROM activity_queue_data aqd2
        WHERE aqd2.key = 'data' AND
              aqd2.activity_data_id = aqd.KeyId  -- this might be backwards
       ) as other_data
FROM activity_queue_data aqd
WHERE aqd.key = 'filename'
LIMIT 100;


一些建议:在引用多个表的任何查询中使用表别名和限定的列名。这样,您不必考虑何时做正确的事情。

10-04 23:29
查看更多