我是 SQL 的新手,不知道为什么这段代码无法执行。我知道错误,但我没有得到任何结果。无论我等多久,代码都会继续处理。我知道这个问题可能与我的特定数据库有关,但我想知道是否有任何明显的错误。
此外,如果它与我在数据库中进行的调用有关,那么我将如何进行调试,因为我没有收到任何形式错误?
SELECT cr.COMMUNICATIONS_ID AS ANSWER_ID, cr.CONSUMER_ID as VIEWER_ID,
cr.ACTION_LOG_ID, nc.PARENT_COMMUNICATIONS_ID AS QUESTION_ID,
cirm.CONSUMER_RATING AS VIEWER_INTEREST,
cim.CONSUMER_INTEREST_EXPERT_ID AS DOMAIN
FROM (
SELECT 234 AS CONSUMER_ID, ACTION_LOG_ID, COMMUNICATIONS_ID
FROM consumer_action_log
WHERE COMM_TYPE_ID=4
) AS cr
JOIN network_communications AS nc ON
cr.COMMUNICATIONS_ID=nc.COMMUNICATIONS_ID
JOIN communication_interest_mapping AS cim ON
nc.PARENT_COMMUNICATIONS_ID=cim.COMMUNICATION_ID
JOIN consumer_interest_rating_mapping AS cirm ON
cr.CONSUMER_ID=cirm.CONSUMER_ID AND
cim.CONSUMER_INTEREST_EXPERT_ID=cirm.CONSUMER_INTEREST_ID;
最佳答案
子查询中的派生列可能会导致 MySQL 关闭。尝试使用此查询来获得相同的结果
SELECT cr.COMMUNICATIONS_ID AS ANSWER_ID, cirm.CONSUMER_ID as VIEWER_ID,
cr.ACTION_LOG_ID, nc.PARENT_COMMUNICATIONS_ID AS QUESTION_ID,
cirm.CONSUMER_RATING AS VIEWER_INTEREST,
cim.CONSUMER_INTEREST_EXPERT_ID AS DOMAIN
FROM (
SELECT ACTION_LOG_ID, COMMUNICATIONS_ID
FROM consumer_action_log
WHERE COMM_TYPE_ID=4
) AS cr
JOIN network_communications AS nc ON
cr.COMMUNICATIONS_ID=nc.COMMUNICATIONS_ID
JOIN communication_interest_mapping AS cim ON
nc.PARENT_COMMUNICATIONS_ID=cim.COMMUNICATION_ID
JOIN consumer_interest_rating_mapping AS cirm ON
cim.CONSUMER_INTEREST_EXPERT_ID=cirm.CONSUMER_INTEREST_ID
WHERE cirm.CONSUMER_ID = 234
关于不会执行的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4800675/