如何在mysql查询中使用select另一个select(Sub-Query)?

时间:2014-05-17 08:50:12

标签: mysql select nested subquery

我需要在另一个选择中使用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'";

1 个答案:

答案 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))