大家早上好,几天前我在我的服务器上安装了一个shopware 5实例来摆弄。Shopware有一个功能,可以销售ESD产品,并为每个购买分配一个唯一的序列号,现在我需要从外部程序进行验证。遗憾的是,shopware将所有东西都拆分到多个表中,这使得它很难理解。
我拥有:-用户电子邮件地址-用户许可证
我想要的:产品的名称,这是与给定的许可证授权的电子邮件地址。文章序列号作为"a_articles_esd_serials“存储在”序列号“中。文章名称在"s_articles“中存储为" name”。
我已经尝试过了:我尝试创建一个SQL查询来获取与产品匹配的序列号。只是为了给我自己建立一个基地。但这已经失败了,因为"s_articles.id没有定义“,这是不可能的,因为它明确地存在,当然在phpmyadmin中设置了自动完成。
SELECT arts.name
FROM s_articles arts
JOIN s_articles_esd arts_esd ON arts_esd.articleID = s_articles.id
JOIN s_order_esd order_esd ON order_esd.esdID = arts_esd.id
JOIN s_articles_esd_serials serials ON serials.esdID = order_esd.esdID关于表的信息:我制作了这个设计器视图,以便您了解表的外观。
Designer view of the given tables
如上所述,购物件可以拆分一些东西。
输入:
{
"mail": "example@example.com",
"licence": "ABCDEFGH"
}预期输出:
{[
"mail": "example@example.com",
"licence": "ABCDEFGH",
"product": "Awesome product name" //THIS WOULD BE NULL IF NOTHING FOUND
]}也许有人能帮我做到这一点?那会很好的,因为我的大脑被rn以某种方式阻塞了。
欢迎光临!
发布于 2020-04-07 20:14:11
我能够使用多个子查询来帮助自己。
SELECT arts.name FROM s_articles arts WHERE arts.id = (SELECT arts_esd.articleID FROM s_articles_esd arts_esd WHERE arts_esd.id = (SELECT oesd.esdID FROM s_order_esd oesd WHERE oesd.serialID = (SELECT serials.id FROM s_articles_esd_serials serials WHERE serials.serialnumber = "ABCDEFGH") AND oesd.userID = (SELECT usr.id FROM s_user usr WHERE email = 'example@example.com')))https://stackoverflow.com/questions/61079142
复制相似问题