SQLSTATE [42000]:语法错误或访问冲突:1066 laravel中的表/别名不是唯一的-{5.7}

时间:2019-01-05 19:15:06

标签: laravel laravel-5


我是laravel的新手。
现在,Iam正在学习laravel的关系部分。
我看到很多类似的问题!但是没有答案对我不好。
我看到此错误:

a     b        c 
1   2022       11
2   2022       12
3   2022       13
4   2022       14
5   2022       15
6   2023       17
7   2023       22
8   2023       23
9   2023       24
10  2023       25

我在Controller中写了查询:

private void SavetodatabaseBtn_Click(object sender, EventArgs e)
{
    string connectionstring = ConfigurationManager.ConnectionStrings["BondAnalysis.Properties.Settings.BondDataBaseConnectionString"].ConnectionString;

    SqlConnection Con = new SqlConnection(connectionstring);

    SqlCommand com;
    string str;

    Con.Open();

    str = "INSERT INTO BondData VALUES(@C1, @C2, @C3, @C4)";
    com = new SqlCommand(str, Con);

    for (int index = 0; index<dataGridView1.Rows.Count; index++)
    {
        com.Parameters.AddWithValue("@C1", dataGridView1.Rows[index].Cells[0].Value);
        com.Parameters.AddWithValue("@C2", dataGridView1.Rows[index].Cells[1].Value);
        com.Parameters.AddWithValue("@C3", dataGridView1.Rows[index].Cells[2].Value);
        com.Parameters.AddWithValue("@C4", dataGridView1.Rows[index].Cells[3].Value);

        com.ExecuteNonQuery();

        com.Parameters.Clear();
    }

    Con.Close();
}

1 个答案:

答案 0 :(得分:1)

您正在尝试将表联接到自身。因此,您的SQL数据库不知道要引用该表的版本。一个在连接的左侧或右侧。您需要在联接的一侧给表引用一个别名,以便知道要从哪一侧获取数据。

DB::table('tbl_education_iteams')
->join('tbl_education_iteams as other_iteams', 'tbl_education_groups.id', '=', 'other_iteams.group')
->select('other_items.*')
...

请注意,使用select语句时,需要明确说明要从哪个表中获取哪些字段。