具有多个表的INNER JOIN给出“FROM子句中的语法错误”

时间:2015-10-20 13:37:33

标签: vb.net visual-studio-2012 ms-access-2013 oledbdataadapter

我正在开发一个VB.NET程序,它需要连接多个表并在DataGridView上显示它们。

我写了这个查询:

SELECT m.idMedicos, m.Nombre, m.Apellido, h.idHistorial, h.CedulaP,
        r.*, rm.*,
        me.Nombre, me.Tipo, me.Administracion
   FROM Medicos m 
     INNER JOIN Historial h ON m.idMedicos = h.idMedicos 
     INNER JOIN Recetas r ON r.idHistorial = h.idHistorial 
     INNER JOIN RecetaMedica rm ON rm.idReceta = r.idReceta
     INNER JOIN Medicamentos me ON me.idMedicamento = rm.idMedicamento 
   WHERE h.CedulaP = $dato

$dato因查询而异)

当我运行我的程序时,它失败并显示错误:“FROM子句中的语法错误”。

我尝试在每个INNER之前添加逗号,但错误仍然存​​在。

注意:我正在使用MS Access数据库,并使用OleDbDataAdapter运行所有查询。

Dim Consulta As New OleDb.OleDbDataAdapter("Select m.idMedicos, m.Nombre, m.Apellido, 
             h.idHistorial, h.CedulaP, r.*, rm.*, me.Nombre, me.Tipo, me.Administracion 
             FROM Medicos m INNER JOIN Historial h ON m.idMedicos = h.idMedicos, INNER JOIN Recetas r ON r.idHistorial = h.idHistorial, INNER JOIN RecetaMedica rm ON rm.idReceta = r.idReceta,
             INNER JOIN Medicamentos me ON me.idMedicamento = rm.idMedicamento 
             WHERE h.CedulaP ='" + dato + "'", conexion)

¿你们可以帮我一把,看看这里发生了什么? :/

3 个答案:

答案 0 :(得分:0)

我认为问题在于你没有在最初的SELECT中包含me.idMedicamento,所以它没有认出它。

答案 1 :(得分:0)

查看this答案,您似乎需要使用括号来保持连接在逻辑上分开。 Here是关于这个主题的好读物。

正确完成后,您的查询应如下所示:

var cubes = [
        [['a',1],['b',2],['c',3]],
        [['a',4],['d',2],['c',3],['x',5]],
        [['a',1],['c',2],['f',3],['x',1],['o',7]]
        ];
var out = [];
for (var i=0; i<cubes.length; i++) {
    for (var j=0; j<cubes[i].length; j++) {
        out.push(cubes[i][j]);
        for (var x=0; x<out.length-1; x++) {
         if (out[x][0] == cubes[i][j][0]) {
            out[x].push(cubes[i][j][1]);
            out.pop();
         }
        }
    }
}
console.log(out);

答案 2 :(得分:0)

我已经找到了解决这个问题的方法(事实上,很久以前。)

我下载了Fly Speed MySQL Query ...这是一个程序,您可以在其中创建表,关系和其他内容,最终生成正确的代码。 (如果有必要,有时你需要做一些改变。)

http://www.activedbsoft.com/overview-querytool.html

谢谢你的帮助。