MYSQL从两个表中选择具有特定条件的值
问题描述:
我有两个表。一个是查询包含所有类型查询的表,其中一个是query_insert其中只包含查询插入记录。 象下面这样: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.............
...........
.....
9 *current_status*
10 return_date
我想选择所有的查询,它们是具有CURRENT_STATUS新鲜和insert_date是今日(这是在query_insert)的查询。
我试过这个,但没有工作。
$result= mysql_query("SELECT query_insert.*, query.*
FROM query_insert,query
WHERE query_insert.insert_date=$today &&
query.current_status='Fresh' ");
在此查询中,$ today是变量包含today的日期。
请帮我一把。 谢谢。
答
你需要加入你的两个表上进行链接,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' ");
答
试试这个:
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'
答
试试这个:
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'
答
请更改您的查询作为以下:
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_status ='Fresh'”以检查是否确实是不工作的日期子句。
一旦您验证确认您的变量和您的列都是日期而不是日期时间。如果该列是日期时间,那么不要使它=今天使它成为一个范围,因此insert_date> = $ today和insert_date < =明天<
谢谢。有用... :) – 2014-11-24 09:23:04