我今天需要你的帮助:)
我正在尝试使用c#执行SQL指令:
"SELECT table_organe.id,table_famille.famille,table_organe.Libelle,table_organe.Description,table_organe.Symbole, rle_orgposition.position " + "FROM (table_organe " +
"LEFT JOIN table_famille ON table_organe.Famille= table_famille.ID) " + "LEFT JOIN rle_orgposition ON table_organe.id = rle_orgposition.idOrgane";
似乎不起作用,我尝试使用方括号等。 唯一有效的指令是:
SELECT * " +
"FROM (table_organe " +
"LEFT JOIN table_famille ON table_organe.Famille= table_famille.ID) " +
"LEFT JOIN rle_orgposition ON table_organe.id = rle_orgposition.idOrgane";
问题与我要检索的值有关。 谢谢你的帮助 !
(对不起,如果我的英语不太好,我不是母语人士)!
大编辑:我不知道为什么,但是在我的指令中,我只是将括号放在SELECT ... rle_orgposition。[position]上,它起作用了。...为什么? 问题解决了,但对我来说仍然很奇怪。
答案 0 :(得分:1)
语法错误FROM (... ) LEFT
SELECT table_organe.id
, table_famille.famille
, table_organe.Libelle
, table_organe.Description
, table_organe.Symbole
, rle_orgposition.position
FROM table_organe
LEFT JOIN table_famille ON table_organe.Famille= table_famille.ID
LEFT JOIN rle_orgposition ON table_organe.id = rle_orgposition.idOrgane
BIG EDIT的答案已更新..
第二个查询有效,因为您使用select *(所有列)而没有提及任何指定的列名.. 在第一个查询中,在没有适当表别名的情况下使用()FROM()LEFT的情况下,具有命名列名称的select不会使用任何别名..这会引发错误..
您可以使用上面提供的查询轻松地进行检查
答案 1 :(得分:0)
像这样的C#代码:
var statement = @"SELECT table_orgrane.id, table_orgrane.Famille
FROM table_organe
LEFT JOIN table_famille ON table_organe.Famille = table_famille.ID
LEFT JOIN rle_orgposition ON table_organe.id = rle_orgposition.idOrgane";
使用columns
代替*
。