我正在尝试获取所有相关网站在特定日期前过期的博客博客是一个带有网站(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
任何帮助都将不胜感激
很可能blog
和site
表都有一个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正在滚动并告诉你它不知道如何理解这一点。