错误 1052 (23000) 在第 1 行:字段列表中的列"id"不明确



我正在尝试获取所有相关网站在特定日期前过期的博客博客是一个带有网站(siteId(外键的表这里是我的SQL代码:

SELECT * FROM blog b 
JOIN site s ON s.id=b.siteId 
WHERE (s.expiryDate < '2021-03-01') 
AND (b.plagiarismStatus=9 OR b.plagiarismStatus=1) 
AND b.isDeleted=0 AND b.isClosed=1

我一直收到这个错误:

ERROR 1052 (23000) at line 1: Column 'id' in field list is ambiguous

任何帮助都将不胜感激

很可能blogsite表都有一个id列。您应该明确列出要选择的所有列:

SELECT
b.id AS b_id,
s.id AS s_id,
b.siteId,
s.expiryDate
-- plus anything else you want to select
FROM blog b
INNER JOIN site s
ON s.id = b.siteId
WHERE
s.expiryDate < '2021-03-01' AND
b.plagiarismStatus IN (1, 9) AND
b.isDeleted = 0 AND
b.isClosed = 1;

当您使用SELECT *时,您正在从两个表中的每一个表中选择一个id列。MySQL正在滚动并告诉你它不知道如何理解这一点。

最新更新