我有问题。我有桌子:
Customer(cid,etc..),
Motorbike(mid, name, etc..)
和桌子
Rent(rid,cid, mid, check_in, check_out, etc..).
摩托车名称包括品牌(例如Yamaha XT660 R,Yamaha R6,Honda CBF125R等)
我的任务是找到租用所有Yamaha或Suzuki摩托车的客户。
我的查询:
选择c.name,m.name,count(c.name)
来自摩托车m,租金r,客户c
其中c.cid = r.cid AND r.mid = m.mid和(m.name如'Yamaha%'或m.name如'Suzuki%')
按c.ime分组
最佳答案
听起来您应该可以使用简单的JOIN
查询来解决它:
SELECT
r.rid, m.name, c.*
FROM
Rent r
JOIN Motorbike m
ON r.mid = m.mid
JOIN Costumer c
ON r.cid = c.cid
WHERE
m.name LIKE 'Yamaha%'
OR m.name LIKE 'Honda%'
ORDER BY
m.name, r.check_in
上面将为所有Yamaha / Honda自行车的每次租赁选择租赁ID,自行车名称和完整的客户信息。
如果要获得租用所述自行车的“唯一”客户列表,而不是完整的租车历史记录,可以使用
GROUP BY
:SELECT
c.cid, m.name, COUNT(*) AS num_rentals
FROM
Rent r
JOIN Motorbike m
ON r.mid = m.mid
JOIN Costumer c
ON r.cid = c.cid
WHERE
m.name LIKE 'Yamaha%'
OR m.name LIKE 'Honda%'
GROUP BY
c.cid
关于mysql - 如何从其他表中获得所有具有“相同”名称的值的客户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23723172/