2015-08-24 11 views
2

Как получить данные из другой таблицы? У меня есть таблица 'log' Я хочу выбрать stud_id, у которого значение 'status_log' 'in' и 'out' и '' status 'имеет значение' 0 ', и мой вопрос, чтобы выбрать ученика, у которого есть значение' 1 'в' году 'из таблицы' student '.Как получить данные из другой таблицы, используя id

это мой существующий код.

SELECT l1.stud_id FROM log AS l1 
 
    JOIN log AS l2 ON l1.stud_id=l2.stud_id AND l2.status_log = 'out' AND l2.status = 0 
 
    WHERE l1.status_log = 'in' AND l1.status = 0

это таблица базы данных. журнал

| stud_id | date_log | time_log | ampm |status_log |status | 
+---------+-----------+----------+------+-----------+-------+ 
| 123  |2015-08-19 | 07:38:34 | am | in  | 0  | 
| 123  |2015-08-19 | 07:40:34 | am | out  | 0  | 
| 5656 |2015-08-19 | 07:47:34 | am | out  | 0  | 
| 5656 |2015-08-19 | 07:47:34 | am | out  | 1  | 

студент

|cardcode | name  | year |section |penalty_count | 
+---------+-----------+------+-----------+--------------+ 
| 123  |martin  | 1 | A   | 0   | 
| 5656 |neptali | 2 | A   | 0   | 
| 56577 |juan  | 1st | A   | 0   | 

thankyousomuch

ответ

1

Это подберет stud_id с in или out значением в status_log и status из 0, а также year с 1 значения в таблице студента.

SELECT a.stud_id, a.date_log, a.time_log, a.ampm, a.status_log, a.status, b.name, b.year, b.section, b.penalty_count 
FROM log a 
INNER JOIN student b ON a.stud_id = b.cardcode 
WHERE (a.status_log = 'in' OR a.status_log = 'out') AND a.status = 0 AND b.year = 1 
+0

thankyou sir .... –

1

Вы можете попробовать это:

SELECT st.cardcode as st FROM student INNER JOIN table as tb on tb.stud_id = st.cardcode WHERE 
st.year = 1 AND tb.status_log IN ('in','out') AND tb.status = 0 

ИНЕКЕ определяет следующие условия: года является 1, status_l включает in и out и статус 0

+0

ошибка сэр .please помогают мне –

+0

# 1064 - У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с таблицей tb на tb.stud_id = st.cardcode WHERE st.year = 1 AND tb.status_log IN ('в строке 1 –

+0

, пожалуйста, замените таблицу на log. (имя таблицы, что вы используете) –

0
SELECT l.stud_id 
FROM log l 
JOIN student s ON l.stud_id=s.cardcode 
WHERE l.status_log IN ('in','out') AND l.status=0 AND s.year=1 
GROUP BY l.stud_id; 
Смежные вопросы