我需要在另一个选择中使用select id,但我不知道怎么做?我的想法是这样的:
$query10 = "SELECT id FROM $database_table WHERE UTCdate >= '{$from_date}' AND satellite_derived_time >= CAST('{$from_time}' AS UNSIGNED)";
$query20 = "SELECT id FROM $database_table WHERE UTCdate >= '{$to_date}' AND satellite_derived_time >= CAST('{$to_time}' AS UNSIGNED)";
$query = "SELECT * FROM $database_table WHERE id BETWEEN '$query10' AND '$query20'";
答案 0 :(得分:1)
使用JOIN
SELECT t.*
FROM $database_table AS tfrom
JOIN $database_table AS tto
JOIN $database_table AS t ON t.id BETWEEN tfrom.id AND tto.id
WHERE tfrom.UTCdate >= '$from_date' AND tfrom.satellite_derived_time >= CAST('$from_time' AS UNSIGNED)
AND tto.UTCdate >= '$to_date' AND tto.satellite_derived_time >= CAST('$to_time' AS unsigned)
或使用子查询:
SELECT *
FROM $database_table
WHERE id BETWEEN (SELECT id FROM $database_table WHERE UTCdate >= '{$from_date}' AND satellite_derived_time >= CAST('{$from_time}' AS UNSIGNED))
AND (SELECT id FROM $database_table WHERE UTCdate >= '{$to_date}' AND satellite_derived_time >= CAST('{$to_time}' AS UNSIGNED))