2015-04-04 2 views
-1

у меня есть 2 таблицы MySQL:PyMySQL Синтаксис при использовании двух таблиц

-Attendance:

att id  | child id 
-------------------------- 
A0012  | C002 
A0034  | C001 
A0064  | C003 
A0065  | C003 
A0066  | C003 

-день Цены:

att id  | price | date 
-------------------------- 
A0012  | 30.00 | 2015-01-26 
A0034  | 45.00 | 2015-01-26 
A0064  | 62.50 | 2014-12-30 
A0065  | 20.0 | 2015-01-02 
A0066  | 90.0 | 2015-01-03 

Я использую pymysql, чтобы выбрать 'цену' и «данные» из таблицы «Дневные цены». Однако мне бы хотелось, чтобы такие данные соответствовали «child id», который является «C003». Это связано с тем, что я должен получить только:

price | date 
-------------------- 
62.50 | 2014-12-30 
20.0 | 2015-01-02 
90.0 | 2015-01-03 

Это мой запрос:

"SELECT price, date FROM Day Prices WHERE att id FROM Attendance = att id FROM Day Prices WHERE child id = 'C003'" 

Этот запрос не работает, так что любая помощь придумывают решение очень ценится!

ответ

1

Как насчет

select d.price, d.date FROM `Day Prices` d 
join Attendance a 
on a.att id = d.att id 
where a.child id = 'C003'; 
0

Синтаксис запроса неверен. Вы должны присоединиться к таблицам по att id:

SELECT 
    price, date 
FROM 
    `Day Prices` as dp, `Attendance` as a 
WHERE 
    dp.`att id` = a.`att id` AND 
    a.`child id` = 'C003' 

Использование кавычки (`) из-за пробела в именах таблиц и столбцов.

0

Вы должны использовать обратные кавычки (`), когда вы используете имя таблицы с пробелами:

SELECT price, date FROM `Day Prices`, Attendance 
WHERE `Day Prices`.att_id = Attendance.att_id 
     AND Attendance.child_id = 'C003' 
0

У вас есть несколько проблем. Одним из них является использование пробелов и зарезервированных слов (date) в именах столбцов таблицы; это затрудняет запись ваших запросов. Другое дело, что вам нужно узнать о JOIN.

Этот запрос должен работать на вас.

SELECT d.price, d.`date` 
    FROM `Day Prices` d 
    JOIN Attendance a ON d.`att id` = a.`att id` 
    WHERE a.`child id` = 'C003' 
Смежные вопросы