我正在
运行时错误'3061':参数太少。预计1
我的表是:
Libro{
idLibro
fromNumber
toNumber
control1 > FK Persona
control2 > FK Persona
}
Persona{
idPersona
name
}
尝试了这2种方法但得到了同样的错误
sql= "SELECT L.*, P.nombre as c1, Q.nombre as c2
FROM ((Libro L INNER JOIN Persona P ON P.idPersona = L.control1)
INNER JOIN Persona Q ON Q.idPersona = L.control2)"
和
sql= "SELECT L.*, P.nombre as c1, Q.nombre as c2
FROM Libro L, Persona P, Persona Q
WHERE L.control1=P.idPersona AND L.control2=Q.idPersona"
两个表都有这个值:
Libro{
(1, 100, 150, 1, 3)
(2, 151, 300, 2, 3)
}
Persona{
(1, 'Juan')
(2, 'Mario')
(3, 'Luis')
}
我希望从Libro获得注册表中 control1 和 control2 引用的两个名称
答案 0 :(得分:0)
您正在别名的表(p和q)没有名为[nombre]的列,因此访问认为它们是参数,因此当您尝试运行它们时可能会提示您输入参数。你使用[name]而不是[nombre]。所以要么改变你的表中的列名,这不是一个坏主意,因为[name]是保留字,或者更改你的查询:
SELECT L.*, P.name, q.name
FROM (Libro AS L INNER JOIN Persona AS P ON L.control1 = P.idPersona) INNER JOIN Persona AS q ON L.control2 = q.idPersona;