0

我一直试图将 COUNT 查询合并到我拥有的现有 SELECT 查询中。

目前,我使用这个 SELECT 语句来获取一些联系信息:

SELECT contact.id_contact, contact.cname, contact.cemail, contact.trading_id, trading_name.trading_name
FROM contact
INNER JOIN trading_name ON contact.trading_id = trading_name.id_trading_name
WHERE (CHAR_LENGTH(contact.cname) > 0)
ORDER BY contact.cname

我也有这个 COUNT 查询,我需要以某种方式将其包含在同一个 SELECT 语句中:

SELECT COUNT(AlertID) AS CustomerAlertCountTotal FROM customer_support_dev.customer_alerts WHERE (AlertTradingID = @tradingid)

基本上我需要知道每个“trading_name”有多少个“AlertID”,以及在“CustomerAlertCountTotal”中返回的值——但只使用一个查询。

(如果有什么不同,我使用的是 MySQL 数据库)

希望这是有道理的:)

4

2 回答 2

0
SELECT contact.id_contact, contact.cname, contact.cemail, 
contact.trading_id, trading_name.trading_name,CustomerAlertCountTotal
FROM contact
INNER JOIN trading_name 
ON contact.trading_id = trading_name.id_trading_name
LEFT JOIN (SELECT COUNT(AlertID) AS CustomerAlertCountTotal,AlertTradingID 
FROM customer_support_dev.customer_alerts )as count
on count.AlertTradingID=contact.trading_id
WHERE (CHAR_LENGTH(contact.cname) > 0)
ORDER BY contact.cname
于 2013-09-11T09:00:30.583 回答
0

只是我的预感。如果您要与联系人和客户一起加入表格。你可以合并这样的东西。请让我知道是否需要调整。

    SELECT contact.id_contact, contact.cname, contact.cemail, contact.trading_id, trading_name.trading_name, count(AlertID)
    FROM contact
    INNER JOIN trading_name 
     ON contact.trading_id = trading_name.id_trading_name
    LEFT JOIN customer_alerts
     ON contact.id = costumer_alerts.contact_id
    WHERE
     (CHAR_LENGTH(contact.cname) > 0) AND
     AlertTradingID = @tradingid
    GROUP BY contact.id
    ORDER BY contact.cname
于 2013-09-11T09:05:17.443 回答