我有2个mysql表:
-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从'Day Price'表中选择'price'和'data'列。但是,我只想要与'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'"
此查询不起作用,因此非常感谢任何提供解决方案的帮助!
答案 0 :(得分:0)
怎么样
select d.price, d.date FROM `Day Prices` d
join Attendance a
on a.att id = d.att id
where a.child id = 'C003';
答案 1 :(得分: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'
因为表名和列名中的空格而使用反引号(`)。
答案 2 :(得分:0)
当您使用带有空格的表名时,您应该使用反引号(`):
SELECT price, date FROM `Day Prices`, Attendance
WHERE `Day Prices`.att_id = Attendance.att_id
AND Attendance.child_id = 'C003'
答案 3 :(得分: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'