- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下查询:
$query4 = $db->query("SELECT count(codes.lcfruh) AS front_lcfruh, kw, datum, GROUP_CONCAT(name) AS name FROM codes
RIGHT JOIN dienstplan ON (dienstplan.schicht = codes.lcfruh OR dienstplan.schicht = codes.lcteildienst OR dienstplan.schicht = codes.lcshteil)
RIGHT JOIN personal ON personal.perso_id = dienstplan.perso_id
WHERE personal.status_sum = 'rezeption' AND dienstplan.schicht!='' AND dienstplan.kw = '$kw' AND personal.zeigen='ja'
GROUP BY dienstplan.datum");
我想要 7 个输入字段的结果(一周中的每一天)。这样做是正确的。列出了 0 或值大于 0 的两个字段,实际上创建了输入字段。
while ($result = $query4 ->fetch_object()) {
echo '<p class="taglist1"><input name="" type="text" title="'.$result->name.'" class="zbroj'.$result->front_lcfruh.'" value="'.$result->front_lcfruh.'"></p>';
}
在标题中,我希望列出具有特定值的名称,这也有效,直到我将以下行放入 WHERE CLAUSE
AND (dienstplan.schicht = codes.lcfruh OR dienstplan.schicht = codes.lcteildienst OR dienstplan.schicht = codes.lcshteil)
在这种情况下,问题如下:结果没有显示不匹配的字段,其中我应该有 count(codes.lcfruh)=0
。不匹配的字段不会显示。
我是否可以将此行放在代码中的其他位置,以便也列出空字段。
最佳答案
您要放入 where
子句中的代码是:
AND (dienstplan.schicht = codes.lcfruh OR
dienstplan.schicht = codes.lcteildienst OR
dienstplan.schicht = codes.lcshteil
)
尽管您不希望出现这种情况,但这也添加了条件:
dienstplan.schicht is not null and
(codes.lcfruh is not null or dienstplan.schicht is not null OR dienstplan.schicht is not null)
因为 NULL
值在 where
中被视为 false。这“撤消”了右外连接
。
解决方案是将条件移至 on
子句。或者,您可以添加额外的 or
子句,指定 NULL
是一个合适的值。
编辑:
尝试将 where
子句更改为:
AND (dienstplan.schicht = codes.lcfruh OR
dienstplan.schicht = codes.lcteildienst OR
dienstplan.schicht = codes.lcshteil OR
dienstplan.schicht is null or
(codes.lcfruh is null and codes.lcteildienst is null and codes.lcshteil is null)
)
这将保留未通过右外连接
的行。
编辑二:
下一个想法。将条件移至group_concat()
。如果第一个查询有效,那么也许这就是您想要的:
GROUP_CONCAT(case when dienstplan.schicht = codes.lcfruh OR
dienstplan.schicht = codes.lcteildienst OR
dienstplan.schicht = codes.lcshteil
then ''
else name
end)
如果这不起作用,请使用示例数据和所需结果编辑您的问题。
编辑三:
这是你想要的吗?
SELECT count(case when personal.status_sum = 'rezeption' AND dienstplan.kw = '52'
then codes.lcfruh
end) AS front_lcfruh,
kw, datum,
GROUP_CONCAT(case when personal.status_sum = 'rezeption' AND dienstplan.kw = '52'
then name
end) AS name
FROM codes
RIGHT JOIN dienstplan ON (dienstplan.schicht = codes.lcfruh)
RIGHT JOIN personal ON personal.perso_id = dienstplan.perso_id
GROUP BY dienstplan.datum;
我将条件移至 select
语句中,因此所有行都会显示。
关于php - 在 php 中使用 group_concat 列出空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21189054/
假设你有 Select group_concat(distinct tag.title) as tagTitles group_concat(distinct tag.id) as tagIds ar
我正在建立一个销售鞋子的网上商店。我正在尝试编写一个命令来显示 1 个特定运动鞋的每种尺寸的数量。 这是我的 ER 图 Link to my ER-Diagram can be seen here:
有可能吗?我想要得到的是这样的: +-------------------------------+ | data 1 (another1, another2); | | data 2 (anoth
我正在分析一些查询,并在尝试根据 user_id 从不同的表中提取多个字段时注意到一些有趣的结果。考虑下表: +------------------------+------------------+
不确定标题是否正确解释了情况,但我会尽力在这里解释。 我有一个表,其中有 3 个字段链接到其他表,我想按以下方式对所有行进行分组: item_id, user_id, group_id 1
SELECT CONCAT(`date`,',',`viewcount`) FROM `stat` WHERE `stat`.`id` = 1 AND `channelstat`.`date` B
这是我第一次使用 stackoverflow,..对我温柔点;) 当在 map 表上使用多个 JOIN 时,从 GROUP_CONCAT 获取重复结果几乎没有问题。 解释这个并不容易,但我会尝试: 我
我有以下查询: SELECT files.file_name, files.locked, projects.project_name, group_concat( versions.version,
我想列出所有用户及其对应的用户类别。这是我的表格的简化版本 CREATE TABLE users ( user_id INT NOT NULL AUTO_INCREMENT, user
MYSQL group_concat() 函数默认忽略空列,但不忽略空字符串列。我有一个 mediumtext 类型的字段,而不是 null。当我在该查询上使用 group_concat 函数时,生成
是否可以使用 Mysql 获取前 n(比如一列的 10 行)行的逗号分隔值? 我有一个查询要获取大于 CURDATE() 的数据。它将返回超过 100 行的结果。我想要的是,GROUP_CONCAT
我刚刚了解到 group_concat和 order by , group by ,现在我正在尝试将它们应用于查询谋杀案。即,到下面的这个以获取所有参与者和目标。 SELECT DISTINCT ?i
在 BigQuery 中创建了以下查询: SELECT date, userId, SUM(totals.visits) totalvisits, GROUP_CONCAT(devic
这是我的 SQL 操作: select `id_ifc_espaces`,GROUP_CONCAT(DISTINCT `nom_espace`) as nom_espace ,GROUP_CONC
我使用 GROUP_CONCAT 来获得由逗号分割的结果( , ),但是当我看到时, GRUP_CONCAT仅返回 205 拆分的数字,但在数据库中有 2448 结果(不同 aid )。这是我的查询:
我想在 table A 上做一个 SELECT,它有: table_a: ╔══════════╦════════╗ ║ GROUP_ID ║ NAME ║ ╠══════════╬═══════
我想根据messageid group_concate image_id 和small_pic_path 路径。 但是 group concate 显示所有 image_id 和第一个 message
我有 table id | industry_id | type | key 1 1 0 word1 2 1 1 wor
我的查询是这样的 SELECT * FROM semesters WHERE student_id = 434 AND marks_id <= 576 AND semester_id <= 23
在 mysql 中是否有 GROUP_CONCAT 的替代方案。由于 GROUP_CONCAN 的最大长度约束是 1024,我需要一个替代方案。我不能更改 GROUP_CONCAN_MAX_LENGT
我是一名优秀的程序员,十分优秀!