Php 如果我在查询中插入group by,我的搜索栏将不再工作
嗨,我已经实现了一个查询,可以调整我的搜索栏:Php 如果我在查询中插入group by,我的搜索栏将不再工作,php,mysql,sql,Php,Mysql,Sql,嗨,我已经实现了一个查询,可以调整我的搜索栏: $sql = "SELECT * FROM clienti INNER JOIN campagne_cliente ON campagne_cliente.cliente_id_campagna = clienti.cliente_id INNER JOIN campagne ON campagne.id_campagna = campagne_cliente.id_campagna_cliente " . $queryCondition; $r
$sql = "SELECT *
FROM clienti
INNER JOIN campagne_cliente
ON campagne_cliente.cliente_id_campagna = clienti.cliente_id
INNER JOIN campagne
ON campagne.id_campagna = campagne_cliente.id_campagna_cliente " . $queryCondition;
$result = mysqli_query($connessione,$sql);
但在这种情况下,它对我来说是不起作用的,因为它复制了“campagne.id_campagna”的“n”倍
我需要一个使用group by的查询,如下所示:
$sql = "SELECT *
FROM clienti
INNER JOIN campagne_cliente
ON campagne_cliente.cliente_id_campagna = clienti.cliente_id
INNER JOIN campagne
ON campagne.id_campagna = campagne_cliente.id_campagna_cliente GROUP BY campagne.id_campagna " . $queryCondition;
$result = mysqli_query($connessione,$sql);
只是我很清楚,作为一个参数,它是不被接受的,但以这种方式,只有在视觉层面对我来说,它才是正确的,因为我不必为多少个产品显示相同的名称,而只需为多少个活动显示一次客户的名称
如何使用“分组方式”使搜索栏正常工作?试试这个
$sql = "SELECT DISTINCT OWNER
FROM clienti
INNER JOIN campagne_cliente
ON campagne_cliente.cliente_id_campagna = clienti.cliente_id
INNER JOIN campagne
ON campagne.id_campagna = campagne_cliente.id_campagna_cliente " . $queryCondition;
$result = mysqli_query($connessione,$sql);
试试这个
$sql = "SELECT DISTINCT OWNER
FROM clienti
INNER JOIN campagne_cliente
ON campagne_cliente.cliente_id_campagna = clienti.cliente_id
INNER JOIN campagne
ON campagne.id_campagna = campagne_cliente.id_campagna_cliente " . $queryCondition;
$result = mysqli_query($connessione,$sql);
这样行吗
sql = "SELECT DISTINCT(*)
FROM clienti
WHERE
EXISTS (SELECT 0 FROM campagne_cliente
INNER JOIN campagne ON campagne.id_campagna = campagne_cliente.id_campagna_cliente
WHERE campagne_cliente.cliente_id_campagna = clienti.cliente_id)"
. $queryCondition;
$result = mysqli_query($connessione,$sql);
告诉我它是否对你有帮助。这样行吗
sql = "SELECT DISTINCT(*)
FROM clienti
WHERE
EXISTS (SELECT 0 FROM campagne_cliente
INNER JOIN campagne ON campagne.id_campagna = campagne_cliente.id_campagna_cliente
WHERE campagne_cliente.cliente_id_campagna = clienti.cliente_id)"
. $queryCondition;
$result = mysqli_query($connessione,$sql);
告诉我它是否对您有帮助。为什么在不涉及聚合函数的情况下分组?@jarlh因为我只需要让所有者的名称在视频中出现一次,而不是像许多产品那样出现多次,因此我需要一个组,然后选择不同的所有者名称,或者如果其sql server使用分区,但所有者可以有多行,如果其他列的值不同,则需要指定要选择的值。添加一些示例表数据和预期结果-都是格式化文本,而不是图像。如果查询没有聚合函数,那么group by子句是多余的。为什么不涉及聚合函数时使用group by?@jarlh,因为我需要使所有者的名称只在视频中出现一次,没有很多产品那么多,因此我需要一个组,然后选择不同的所有者名称,或者如果其sql server使用Partition,但所有者可以有多行,其他列的值不同-您需要指定要选择的值。添加一些示例表数据和预期结果-全部作为格式化文本,而不是图像。如果查询没有聚合函数,则group by子句是多余的,它不起作用,因为以这种方式,我在视频中看到的所有者名称是不起作用的产品的两倍,因为这样的话,我在视频中看到了主人的名字,是很多产品的两倍。谢谢你为我花时间,谢谢你为我花时间