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