这是我到目前为止所做的工作(正在进行的工作):
INSERT INTO customer_bi.flight_search (
SELECT
NULL,
count(temp.audit_id) AS `count`,
temp.destination,
temp.audit_subsite_id,
temp.subsite_desc,
DATE_FORMAT(temp.audit_date, '%Y-%m-%d') AS search_date
FROM
(
SELECT DISTINCT
a.audit_id,
fs.destination,
a.audit_subsite_id,
s.subsite_desc,
a.audit_date
FROM
audit_flight_search fs
INNER JOIN audit a ON a.audit_id = fs.audit_id
INNER JOIN gns.subsite s ON a.audit_subsite_id = s.subsite_id
WHERE
a.audit_date >= CURRENT_DATE() - INTERVAL 1 DAY
AND a.audit_date < CURRENT_DATE()
AND fs.flight_type = 'ROUNDTRIP'
and (a.audit_member_id IS NULL OR a.audit_member_id != 10172424)
) temp
GROUP BY
temp.subsite_desc,
temp.destination
ORDER BY
temp.subsite_desc ASC,
`count` DESC
)
在customer_bi数据库中,我有一个表,列出了所有其他带ID的数据库。例如,GNS的ID为4.我要做的是在第二个内部联接(本例中为gns.subsite)中根据数据库名称插入该ID。我已经搜索过,但却找不到答案,我也不太了解PHP,因此无法将其作为解决方案使用。有任何想法吗?
答案 0 :(得分:0)
你有加入
gns.subsite s
但您要查找的ID不在您的选择列表中
a.audit_id,
fs.destination,
a.audit_subsite_id,
s.subsite_desc,
a.audit_date
缺少
s.subsite_id
答案 1 :(得分:0)
我实际上是通过在每个数据库中创建一个单元格表来保存ID并添加子查询来解决此问题。这解决了这个问题:
INSERT INTO customer_bi.flight_search (
SELECT
NULL,
count(temp.audit_id) AS `count`,
temp.destination,
temp.db_id,
temp.audit_subsite_id,
temp.subsite_desc,
DATE_FORMAT(temp.audit_date, '%Y-%m-%d') AS search_date
FROM
(
SELECT DISTINCT
a.audit_id,
fs.destination,
(SELECT
db_id
FROM gns.db_id) as db_id,
a.audit_subsite_id,
s.subsite_desc,
a.audit_date
FROM
audit_flight_search fs
INNER JOIN audit a ON a.audit_id = fs.audit_id
INNER JOIN gns.subsite s ON a.audit_subsite_id = s.subsite_id
WHERE
a.audit_date >= CURRENT_DATE() - INTERVAL 1 DAY
AND a.audit_date < CURRENT_DATE()
AND fs.flight_type = 'ROUNDTRIP'
and (a.audit_member_id IS NULL OR a.audit_member_id != 10172424)
) temp
GROUP BY
temp.subsite_desc,
temp.destination
ORDER BY
temp.subsite_desc ASC,
`count` DESC
)