2014-11-24 4 views
0

У меня есть две таблицы. Один из них - query Таблица, содержащая все типы запросов и одна - 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 является переменной, содержащей дату сегодняшнего дня.

Пожалуйста, помогите мне. Спасибо.

ответ

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

Спасибо. Оно работает... :) –

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' ', чтобы проверить, действительно ли это предложение даты, которое не работает.

после того, как вы подтвердили, что ваша переменная и ваш столбец являются датой, а не датой. если столбец datetime, то вместо того, чтобы сделать его = $ сегодня, сделайте его диапазоном, таким образом insert_date> = $ today и insert_date < = завтра <