我有两张桌子。一个是查询表,其中包含所有类型的查询,一个是 query_insert ,其中仅包含查询插入记录。 如下所示:
**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
我想从查询中选择所有那些将current_status设置为fresh并且insert_date为today(在query_insert中)的查询。
我试过这个但没有工作。
$result= mysql_query("SELECT query_insert.*, query.*
FROM query_insert,query
WHERE query_insert.insert_date=$today &&
query.current_status='Fresh' ");
在此查询中,$ today变量包含今天的日期。
请帮帮我。 谢谢。
答案 0 :(得分:0)
试试这个:
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'
答案 1 :(得分:0)
您需要将两个表连接到链接它们的属性query_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' ");
答案 2 :(得分:0)
试试这个:
SELECT *
FROM query q
JOIN query_insert i
ON q.id = i.query_id
WHERE q.current_status = 'Fresh'
AND i.insert_date = now()
或者,如果query_insert中有更多关于同一查询的行:
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'
答案 3 :(得分:0)
请更改您的查询,如下所示:
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
答案 4 :(得分:0)
删除其中一个“&& query.current_status ='Fresh'”以检查这是否真的是不起作用的日期子句。
一旦您确认检查了您的变量和列是日期而非日期时间。如果列是datetime,那么而不是使它= $ today使它成为一个范围,因此insert_date> = $ today和insert_date< = tomorrow<