使用两个表时的 PyMySQL 语法
PyMySQL Syntax when using two tables
我有 2 mysql tables:
-出勤率:
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 到 select 来自 'Day Prices' table 的 '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'"
此查询无效,因此非常感谢任何提出解决方案的帮助!
怎么样
select d.price, d.date FROM `Day Prices` d
join Attendance a
on a.att id = d.att id
where a.child id = 'C003';
您查询的语法不正确。您需要通过 att id
:
加入 tables
SELECT
price, date
FROM
`Day Prices` as dp, `Attendance` as a
WHERE
dp.`att id` = a.`att id` AND
a.`child id` = 'C003'
由于 table 和列名中的空格而使用反引号 (`)。
当您使用带空格的 table 名称时,您应该使用反引号 (`):
SELECT price, date FROM `Day Prices`, Attendance
WHERE `Day Prices`.att_id = Attendance.att_id
AND Attendance.child_id = 'C003'
你有几个问题。一是您在 table 列名称中使用了空格和保留字 (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'
我有 2 mysql tables:
-出勤率:
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 到 select 来自 'Day Prices' table 的 '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'"
此查询无效,因此非常感谢任何提出解决方案的帮助!
怎么样
select d.price, d.date FROM `Day Prices` d
join Attendance a
on a.att id = d.att id
where a.child id = 'C003';
您查询的语法不正确。您需要通过 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'
由于 table 和列名中的空格而使用反引号 (`)。
当您使用带空格的 table 名称时,您应该使用反引号 (`):
SELECT price, date FROM `Day Prices`, Attendance
WHERE `Day Prices`.att_id = Attendance.att_id
AND Attendance.child_id = 'C003'
你有几个问题。一是您在 table 列名称中使用了空格和保留字 (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'