以下四个表的mysql查询是什么
我有四张桌子 用户: 客户:以下四个表的mysql查询是什么,mysql,sql,Mysql,Sql,我有四张桌子 用户: 客户: client_id client_name products 1 tom cake, patties 2 pet cookie, cake 产品: product_id product_name 1 cake 2 cookie 3 patties 报告: report_id product_id 1
client_id client_name products
1 tom cake, patties
2 pet cookie, cake
产品:
product_id product_name
1 cake
2 cookie
3 patties
报告:
report_id product_id
1 1
2 3
3 2
4 1
5 3
如果Ravi登录,则他只能看到如下报告:
report_id product_id
1 1
3 2
4 1
我只需要在“Client”表中使用MySQL查询,而不需要保存“product”的多个值。将其拆分,只放入“product id”,而不放入实际的产品值,这就是为什么要使用表“product”。您的表“client”不在中。因此,如果可能,请更改表的结构我同意Simemon的回答,您需要规范化您的DB表 然后,如果您只想使用这个表结构,您也可以试试这个
select * from reports where product_id in (select product_id from products where product_name in (select products from clients where client_id = (select client_id from users where username = 'ravi' limit 1)))
我还没有测试过这个。如果有任何错误,请告诉我,我会检查。将
客户机表一分为二<代码>客户端
和客户端产品
。您的产品
列的架构不正确,请将其拆分,以包含单个值!!!但是我不想改变设计或结构。您是否在MySQL中创建了表,因为如果没有1NF,几乎不可能创建数据并将其插入表中。所以,最好的选择是更改结构。我会尝试更改结构。只需更改结构,然后您就可以使用mysql嵌套选择查询来检索所需的信息。如果你认为我回答了你的问题,请勾选“正确答案”
select * from reports where product_id in (select product_id from products where product_name in (select products from clients where client_id = (select client_id from users where username = 'ravi' limit 1)))