假设我们有一个客户端表和一个order表,它们像这样链接在一起: client.id = order.client_id。订单表条目包含已购买的产品id。产品表条目包含购买此产品的会议id。
如何选择只从特定会议列表中购买产品的客户?
我可以用PHP脚本解决这个问题,发出多个请求,重新排列数据,但这并不有趣。
到目前为止我试过了:
select
o.client_id,
array_agg(p.conference_id) as conference_ids
from product as p
left join order as o
on o.id = p.order
作为练习,我正在用MySQL引擎为购物应用程序构建一个InnoDB关系数据库(我是一个菜鸟,对于初学者的问题很抱歉)。
对于产品类别,我决定使用邻接列表模型作为层次数据树。有两个令人关切的表格:
类别
category_id主键
名字
parent_id
产品
id PK
名字
描述
价格
category_id FK
我从找到了一个查询来检索完整的树:
SELECT t1.name AS lev1, t2.name as lev2, t3.name as lev3, t4.name as lev4
FROM categorie
我试图从电子邮件中得到那些产品在购物车中的公司的电子邮件。
直到现在,我写了下面的查询,但这并不是获取我的公司电子邮件。
帮帮忙吧。
SELECT distinct c.u_email FROM products as p INNER JOIN companies as c ON p.u_id = c.u_id WHERE p.u_id IN ($cart_product_ids)
在上面的查询中,$cart_product_ids可以是11或11,13等等。这是一个名为companies的表
这是一个名为products的表
这是一个名为requested_product
好的,我有3个表,一个包含产品,一个包含订单,连接表与订单it和产品it相关联,以将产品与订单相关联。
但是,如何设置一个查询来选择并返回所有订单以及每个订单中的项目呢?因此,我在每一行中都有一个列order_items。
到目前为止,我有:
SELECT
intOrderID AS Order_ID,
strPaymentMethod AS Payment_Method,
strPaymentRef, AS Payment_Ref,
strPaymentStatus AS Payment_Status,
dtmDate AS Date,
curPaymentAm
在"products“表中,有一个category_ids列,它是一个数组,因为产品有多个类别。
我想要的是查询category_ids为1的产品。我试着这样做,它是有效的,但我想要一个更简单的方法如何做。
$catId = 1; //category ID
$allProducts = Product::all(); // get all products
foreach ($allProducts as $product) { //loop all the products
if(in_array($catId, $product->category_ids)) { //
我想通过传递来自其他表的ids数组来获得所有的产品
我能够像在product_id中一样获得所有的dd($main_categorie_ids);,但是无法在其他查询中传递它并获得所需的数据
public function getHomeData($warehouse_id)
{
//get warehouse_table_name by warehouse_id
$warehouse_table = Warehouse::where('id', $warehouse_id)