MYSQL从两个具有特定条件的表中选择值

MYSQL从两个具有特定条件的表中选择值,mysql,Mysql,我有两张桌子。一个是包含所有类型查询的查询表,另一个是仅包含查询插入记录的查询插入。 如下图所示: **query** **query_insert** 1 query_id 1 id 2 query_cons 2 query_id 3 title 3 *insert_date* 4 name 4 insert_time 5.......

我有两张桌子。一个是包含所有类型查询的查询表,另一个是仅包含查询插入记录的查询插入。 如下图所示:

    **query**            **query_insert**
    1 query_id           1 id
    2 query_cons         2 query_id
    3 title              3 *insert_date*
    4 name               4 insert_time
    5.............
    ...........
    .....
    9 *current_status*
    10 return_date
我想从查询中选择当前状态为“新鲜”且插入日期为“今天”的所有查询,该查询位于查询插入中

我试过了,但没用

$result= mysql_query("SELECT query_insert.*, query.* 
                      FROM query_insert,query 
                      WHERE query_insert.insert_date=$today && 
                            query.current_status='Fresh' ");
在这个查询中,$today是一个包含今天日期的变量

请帮帮我。 谢谢。

试试这个:

SELECT * FROM query q
INNER JOIN query_insert qi ON q.query_id = qi.query_id
WHERE insert_date = CURRENT_DATE()
AND current_status = 'Fresh'

您需要在链接两个表的属性query\u id上连接这两个表。 您可以尝试以下方法:

$result= mysql_query("SELECT query_insert.*, query.* 
                      FROM query_insert 
                          LEFT JOIN query 
                                   ON query.query_id = query_insert.query_id
                      WHERE query_insert.insert_date=$today && 
                            query.current_status='Fresh' ");
试试这个:

SELECT *
FROM query q
JOIN query_insert i
ON q.id = i.query_id
WHERE q.current_status = 'Fresh'
AND i.insert_date = now()
或者,如果查询中有更多行,请插入关于同一查询的内容:

SELECT *
FROM query q
WHERE EXISTS(
   SELECT 'insert'
   FROM query_insert i
   WHERE q.id = i.query_id
   AND i.insert_date = now()
)
AND q.current_status = 'Fresh'

请按以下方式更改您的查询:

SELECT query_insert.*, query.* 
FROM query_insert,query 
WHERE query_insert.insert_date = $today 
AND query.current_status='Fresh' 
AND query.query_id = query_insert.query_id

删除其中一个&&query.current\u status='Fresh'以检查这是否真的是不起作用的日期子句

$result= mysql_query("SELECT query_insert.*, query.* 
                      FROM query_insert,query 
                      WHERE query_insert.insert_date=$today && 
                            query.current_status='Fresh' ");
验证后,请检查变量和列是否都是date而不是datetime。如果列是datetime,则不要将其设为=$today,而是将其设为一个范围,从而插入\$date>=$today和插入\$date