我需要一个小提示......我有2张桌子。 表1从外部api获取数据。 表2是静态的。
表1:数据
id name status ratio import_id
1 Test online 3 1
2 Tee online 2 1
3 Test online 1 2
4 Tee online 0.01 2
5 Test offline 4 3
6 Teee online 3 3
7 Teet online 1 3
表2:名称
id name tag active
1 Test t1 1
2 Tee t2 1
3 Teee t3 0
4 Teet t4 1
我想从表名中获取ID(写入另一个表并执行cronjob)
说明表1: id - AI 名字 - 只是名字 status - 如果条目处于活动状态 比率 - 主要选择 import_id - 我每隔10分钟从json导入(~40个条目)
我得到了什么:
$result = mysql_query("
SELECT
import_id
FROM
data
ORDER BY id DESC LIMIT 1");
while($raw = mysql_fetch_object($result))
{
$the_id = $raw->import_id;
echo $the_id;
}
现在我已经获得了ID并尝试获得最高比率的最新条目(import_id):
$c_result = mysql_query("
SELECT
name, active, ratio, import_id
FROM
data
WHERE
active = '1' AND import_id = '$the_id'
ORDER BY
ratio DESC LIMIT 1");
while($chosen = mysql_fetch_object($c_result))
{
$the_c = $chosen->name;
echo $the_c;
}
这完美无瑕。 但有可能api提供的40个条目中的一个不在我的表格中#34;名称"或者它没有标记为"活跃"。
但我只想要
的names.id并将其写入另一个表格。
我考虑过LEFT JOIN,但是如果名字不在表格中,那么#34;名称"我得到一个空洞的结果。
你有正确方向的暗示吗?
答案 0 :(得分:1)
SELECT d.name, active, ratio, import_id
FROM data d
JOIN names n ON d.name = n.name
WHERE import_id = (SELECT import_id
FROM data
ORDER BY id DESC
LIMIT 1)
AND d.status = 'online'
AND n.active = 1
ORDER BY ratio DESC
LIMIT 1