gpt4 book ai didi

php - MySql 查询中基于初始查询结果的新查询

转载 作者:行者123 更新时间:2023-11-30 01:13:51 26 4
gpt4 key购买 nike

我试图从一张表(“SP_Cont”)中获取联系信息,然后根据县代码(CID)从“Counties”表中获取实际的县名称(“CTitle”)。

SELECT 
CONCAT_WS(', ',NULLIF(SP_Cont.Address1, ''),NULLIF(SP_Cont.Address2, ''),NULLIF(SP_Cont.Address3, ''),NULLIF(SP_Cont.Address4, ''),NULLIF(SP_Cont.Address5, ''),NULLIF(SP_Cont.City, ''),NULLIF(Postcode, '')) AS Address, SP_Cont.CID, SP_Cont.RevTot,
Counties.CTitle
FROM
SP_Cont
INNER JOIN
Counties
ON
Counties.CID=SP_Cont.CID
WHERE
SP_Cont.SPCode = "26"

我想要实现的是一个看起来像这样的地址......

地址1、地址2、地址3、城市、县、邮政编码。

我知道上面的方法不会这样做,但至少我不必像目前那样在 PHP 页面中运行另一个查询来添加县:

if (!empty($BAPrint['CID'])) {
$CQuery = mysql_query ("SELECT CTitle FROM Counties USE INDEX (CIDT) WHERE CID = ".$BAPrint['CID']);
$CPrint = mysql_fetch_array ($CQuery);
$Address .= ", ".$CPrint['CTitle'];
}

所以它看起来像这样:

地址1、地址2、地址3、城市、邮政编码、县。

有没有办法获得所需的地址格式

地址1、地址2、地址3、城市、县、邮政编码。

另一个问题是,如果 SP_Cont 不包含 CID 代码,则脚本会失败。无论如何使用 CONCAT_WS,如果存在 NULL CID,脚本仍然运行,但没有县标题?

干杯G

最佳答案

nullif 的工作方式有点不同 http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_nullif

SELECT 
CONCAT_WS(', ',
nullif(SP_Cont.Address1, ''),
nullif(SP_Cont.Address2, ''),
nullif(SP_Cont.Address3, ''),
nullif(SP_Cont.Address4, ''),
nullif(SP_Cont.Address5, ''),
nullif(SP_Cont.City, ''),
nullif(Counties.CTitle, '')
nullif(Postcode, '')
) AS Address,

SP_Cont.CID, SP_Cont.RevTot


FROM SP_Cont
LEFT JOIN Counties
ON Counties.CID=SP_Cont.CID

WHERE SP_Cont.SPCode = "26"

关于php - MySql 查询中基于初始查询结果的新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19249806/

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