Usuário com melhor resposta
C# MySql Query

Pergunta
-
Boas pessoal, queria perguntar como se faz uma query q tenham dados de duas tabelas, eu estou a complicar muito, acho.. s:
Eu quero fazer uma query q vá contar quantos eventos ocorreu numa determinada data e local, soq esses campos da data e local estao noutra tabela.. então eu fiz assim,
MySqlCommand comando = new MySqlCommand("SELECT COUNT(tabela1.evento) FROM tabela1,tabela2 WHERE tabela2.data = '2010-01-01' AND tabela2.data_fim = '2015-06-22' AND tabela2.concelho ='Faro' AND tabela1.cod = tabela2.cod",conexao);
Int32 count = (Int32) comando.ExecuteScalar();
textBox1.Text = Convert.ToString(count);mas não retribui nada, está mal a query?
- Editado noobprogrammer123 segunda-feira, 22 de junho de 2015 11:22
Respostas
-
Noob, sua query está errada nos Joins e possivelmente nas datas.
Seria:
string Query = "SELECT COUNT(tabela1.evento) FROM tabela1 "; Query += "LEFT OUTER JOIN tabela2 ON tabela1.CAMPO_QUE_FAZ_REFERENCIA = tabela2.ID_DE_DESTINO "; Query += "WHERE tabela2.concelho ='Faro' AND tabela1.cod = tabela2.cod AND "; Query += "tabela2.data = '2010-01-01' AND tabela2.data_fim = '2015-06-22';"; MySqlCommand comando = new MySqlCommand(Query, conexao);
Troque o "CAMPO_QUE_FAZ_REFERENCIA" pelo campo na tabela1 que aponta para o campo "ID_DE_DESTINO" na tabela2.
Além disso, essa Query vai te trazer os resultados que tem data igual a 01/jan/2010 e data final igual a 22/jun/2015, NÃO VAI TE TRAZER os registros que estão ENTRE ESSAS DATAS. Se é isso que você quer, ok - se não, coloque o ">=" na data e "<=" na data fim.
- Sugerido como Resposta SammuelMiranda terça-feira, 23 de junho de 2015 14:45
- Marcado como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 13:32
Todas as Respostas
-
Essas duas tabelas tem algum campo em comum?
- Editado Bruno Maschio Joaquim segunda-feira, 22 de junho de 2015 11:28
-
-
-
Noob, sua query está errada nos Joins e possivelmente nas datas.
Seria:
string Query = "SELECT COUNT(tabela1.evento) FROM tabela1 "; Query += "LEFT OUTER JOIN tabela2 ON tabela1.CAMPO_QUE_FAZ_REFERENCIA = tabela2.ID_DE_DESTINO "; Query += "WHERE tabela2.concelho ='Faro' AND tabela1.cod = tabela2.cod AND "; Query += "tabela2.data = '2010-01-01' AND tabela2.data_fim = '2015-06-22';"; MySqlCommand comando = new MySqlCommand(Query, conexao);
Troque o "CAMPO_QUE_FAZ_REFERENCIA" pelo campo na tabela1 que aponta para o campo "ID_DE_DESTINO" na tabela2.
Além disso, essa Query vai te trazer os resultados que tem data igual a 01/jan/2010 e data final igual a 22/jun/2015, NÃO VAI TE TRAZER os registros que estão ENTRE ESSAS DATAS. Se é isso que você quer, ok - se não, coloque o ">=" na data e "<=" na data fim.
- Sugerido como Resposta SammuelMiranda terça-feira, 23 de junho de 2015 14:45
- Marcado como Resposta Cristopher C I_ quinta-feira, 25 de junho de 2015 13:32