我试图做这样的事情:
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;
问题我有这样的表:
和信息这样的存储
这是旧版代码,我无法修改此代码...
但是我想在同一查询中获取每个文件的内容和名称...任何想法... ???
最佳答案
如果要查询,则需要表别名和合格的列名:
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;
一些建议:在引用多个表的任何查询中使用表别名和限定的列名。这样,您不必考虑何时做正确的事情。