gpt4 book ai didi

php - 左连接位置

转载 作者:行者123 更新时间:2023-11-29 23:35:38 26 4
gpt4 key购买 nike

$i 表:id, item_name

$t 表:id、member_name、item_name

$u 表:id、member_name、membership_status

我愿意

  1. 列出 $i 中的所有 item_name,即使 $t 表中没有任何 item_name
  2. 加上 $t 中 item_name 的数量
  3. 然后将计数结果限制为 $u 中的membership_status = 'active'。

这是迄今为止我所回答的问题的第一部分:

$find_actives = mysql_query ("select $i.item_name,  
count($t.item_name) from $i left
join $t on $i.item_name = $t.item_name group by $t.item_name")

但是当我将其更改为下面的查询时,它不再列出 $i 中的所有项目。

$find_actives = mysql_query ("select $i.item_name,  
count($t.item_name) from $i left
join $t on $i.item_name = $t.item_name
where $t.member_name IN (select distinct member_name from $u
where membership_status = 'active' group by member_name)
group by $t.item_name")

我希望结果如下所示:

item_name1 - 计数 = 5

item_name2 - count = 0//这是丢失的行

item_name3 - 计数 = 2

我怎样才能实现这个目标?

最佳答案

如果我正确地阅读了您的问题,我认为这就是您正在寻找的:

SELECT
$i.item_name,
COUNT(temp.item_name) AS item_count
FROM $i
LEFT JOIN (
SELECT $t.item_name AS item_name
FROM $t
INNER JOIN $u
ON $t.member_name = $u.member_name
WHERE $u.membership_status = 'active'
) AS temp
ON $i.item_name = temp.item_name
GROUP BY $i.item_name

关于php - 左连接位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26391472/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com