2014-11-24 135 views
0

我有兩個表。一個是查詢包含所有類型查詢的表,其中一個是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的日期。

請幫我一把。 謝謝。

回答

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' "); 
+0

謝謝。有用... :) – 2014-11-24 09:23:04

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' 
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' 
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 
0

刪除其中一個「& & query.current_status ='Fresh'」以檢查是否確實是不工作的日期子句。

一旦您驗證確認您的變量和您的列都是日期而不是日期時間。如果該列是日期時間,那麼不要使它=今天使它成爲一個範圍,因此insert_date> = $ today和insert_date < =明天<