gpt4 book ai didi

php - Mysql 连接两个表的 where 子句

转载 作者:行者123 更新时间:2023-11-29 23:19:59 27 4
gpt4 key购买 nike

因此,我根据用户选择国家/地区、日期等的表单列出了一些事件。有两张表,主要一张“actividades”是我的名称、价格、参与者数量等,然后我有“tarifas”,我在其中设置事件的特殊规则,例如,如果在特定的一天该事件可用或不。可能有或没有规则,如果没有任何规则,我想列出该事件,如果有规则,我只想在那天可用时列出它,这就是 tarifas.fechado = 0 应该做的事情。

其他一切正常,有人可以帮我解决这个问题吗?

if (!$sql = $db->sql_query("SELECT actividades.dias, actividades.id_pais, actividades.id_regiao, actividades.nome, actividades.id_empresa, actividades.id, actividades.dias, actividades.preco, actividades.id_subcategoria, actividades.hora 
FROM actividades
LEFT JOIN tarifas ON actividades.id = tarifas.id_actividade
AND tarifas.dia = '$dia'
AND tarifas.fechado = 0
WHERE pais = '$pais'
AND actividades.dias LIKE '%$diaExtenso%'
ORDER BY actividades.id ASC
LIMIT $pageLimit, $porpagina"))
{message_die("DS", TRUE); }

最佳答案

我认为您的一些连接条件需要位于 WHERE 子句中。我不清楚 tarifas.dia 如何适应图片,但此查询将返回没有相关 tarifas 行的所有 actividades 行,以及所有具有 tarifas 行的行,其中 tarifas.dia 具有指定值,而 tarifas.fechado 为零。 (为了便于阅读,我对其进行了格式化):

SELECT
actividades.dias,
actividades.id_pais,
actividades.id_regiao,
actividades.nome,
actividades.id_empresa,
actividades.id,
actividades.dias,
actividades.preco,
actividades.id_subcategoria,
actividades.hora
FROM
actividades
LEFT JOIN tarifas
ON actividades.id = tarifas.id_actividade
WHERE
pais = '$pais'
AND actividades.dias LIKE '%$diaExtenso%'
AND (tarifas.id_actividade IS NULL
OR (tarifas.dia = '$dia' AND tarifas.fechado = 0))
ORDER BY actividades.id ASC
LIMIT $pageLimit, $porpagina

您可能希望将 tarifas.dia 上的条件移回到连接谓词中。这样做会导致 tarifas 行被忽略,除非它们具有指定的 dia 值。

关于php - Mysql 连接两个表的 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27409927/

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