查询会生成错误消息。为什么会这样?如何更正查询?
SELECT NAME, DATE
FROM LETTER, LANGUAGE, CITY
WHERE LANGUAGE = LANG_ID
AND PLACE_SENT = CITY_ID ;
错误:
无法执行查询:1052:where子句中的列'LANGUAGE' 含糊不清
答案 0 :(得分:0)
1st:这意味着两个表中都会显示LANGUAGE
列。您需要指定要获得的列。
第二次:您需要在table
后使用column name
名称,以避免列名ambiguous
error
SELECT LETTER.NAME, LETTER.DATE
FROM LETTER , LANGUAGE, CITY
WHERE LETTER.LANGUAGE = LANGUAGE.LANG_ID
AND LETTER.PLACE_SENT = CITY.CITY_ID ;
答案 1 :(得分:0)
因此LANGUAUGE列存在于多个表中。因此,您需要澄清要从中选择此列的表。请在where
子句中添加表名
SELECT LETTER.NAME, LETTER.DATE
FROM LETTER , LANGUAGE, CITY
WHERE LETTER.LANGUAGE = LANGUAGE.LANG_ID
AND LETTER.PLACE_SENT = CITY.CITY_ID ;
答案 2 :(得分:0)
我必须猜测:
SELECT NAME, DATE
FROM LETTER, LANGUAGE, CITY
WHERE LETTER.LANGUAGE = LANG_ID
AND PLACE_SENT = CITY_ID ;
或
SELECT NAME, DATE
FROM LETTER, LANGUAGE, CITY
WHERE CITY.LANGUAGE = LANG_ID
AND PLACE_SENT = CITY_ID ;
或
SELECT NAME, DATE
FROM LETTER, LANGUAGE, CITY
WHERE LANGUAGE.LANGUAGE = LANG_ID
AND PLACE_SENT = CITY_ID ;
或
SELECT NAME, DATE
FROM LETTER, LANGUAGE, CITY
WHERE LANGUAGE.ID = LANG_ID
AND PLACE_SENT = CITY_ID ;
可能会解决您的问题。
答案 3 :(得分:0)
有名称为LANGUAGE的表,属性名称为LANGUAGE。 我在你的查询中用粗体文字标记了它们。另外请将where子句提及为 TABLE.Attribute 看下面
选择姓名,日期 来自信件, LANGUAGE ,CITY 在哪里 表。 LANGUAGE = LANG_ID AND 表。 PLACE_SENT = CITY_ID;