我从3个表中获取相关数据。
表useracc
包含details
列中订单ID的用户帐户交易。这是查询在details
列中查找'gift%'的基本表...
"SELECT * FROM `useracc` WHERE `details` LIKE 'gift%' ORDER BY `id` DESC"
现在,我想从details
列中的这些结果中获取订单ID,该列以“礼品订单ID:245”的形式给出。我想要这个245并运行另一个查询以在第二个表中查找245,即transaction
。
我想在表senderemail
中获取列transaction
,其中列orderid
为245.假设返回abc@abc.com
现在在第三个表格中users
我想找到与该电子邮件相关的用户名。
我想运行查询来获取表username
中的users
列useremail
,其中{{1}}是abc@abc.com。
此用户名将显示在包含第一个查询结果的表格格式的每一行
中如何使用子查询执行此操作。请帮忙
答案 0 :(得分:0)
SELECT u.username, ua.*
FROM useracc AS ua
JOIN transaction AS t ON ua.details = CONCAT('gift order id:', t.id)
JOIN users AS u ON u.useremail = t.senderemail
WHERE ua.details LIKE 'gift order id:%'
ORDER BY ua.id DESC
WHERE
子句不是绝对必要的,因为它对ON
条件是多余的。但它可能会加快查询速度 - 无论有没有尝试,看看哪个更快。