SQLite
09/11/2018
0
Estou com uma duvida, tenho um banco de dados com duas tabelas uma cliente e a outra cursos, onde o cliente pode fazer vários cursos até aqui tudo bem consigo add os cursos ao cliente, fiz um inner join entre essas duas colunas pra pode na hora da consulta do cliente saber quais cursos ele esta fazendo, mais na hora da consulta dos clientes ele me retorna todos os cursos cadastros msm no nome de outro cliente, eu gostaria de saber se tem algum filtro pra filtra isso.
Ex: pesquisar por Fulano de Tal e ele me retorna só os cursos que esse fulano de tal esta fazendo.
Agradeço a todos desde já.
Tassio
Post mais votado
12/11/2018
- primeiro exclua os cursos:
DELETE FROM tabela_cursos WHERE id_aluno = (SELECT id_aluno FROM tabela_alunos WHERE nome_aluno = "Alekym")
- depois exclua o aluno:
DELETE FROM tabela_alunos WHERE nome_aluno = "Alekym"
Emerson Nascimento
Mais Posts
09/11/2018
Alex William
// Exemplo para busca exata do nome SELECT * FROM <tabela_cursos> tc INNER JOIN <tabela_alunos> ta ON tc.id_aluno = ta.id_aluno AND ta.nome_aluno = "Alekym"; // Exemplo para busca dinamica SELECT * FROM <tabela_cursos> tc INNER JOIN <tabela_alunos> ta ON tc.id_aluno = ta.id_aluno AND ta.nome_aluno LIKE "%Alekym%";
09/11/2018
Tassio
// Exemplo para busca exata do nome SELECT * FROM <tabela_cursos> tc INNER JOIN <tabela_alunos> ta ON tc.id_aluno = ta.id_aluno AND ta.nome_aluno = "Alekym"; // Exemplo para busca dinamica SELECT * FROM <tabela_cursos> tc INNER JOIN <tabela_alunos> ta ON tc.id_aluno = ta.id_aluno AND ta.nome_aluno LIKE "%Alekym%";
Muito Obrigado deu certo!!
Deus Abençoe você amigo
09/11/2018
Tassio
Agora surgiu mais uma duvida.
Tipo se eu quiser deletar o aluno junto com o curso usando o inner join, como eu faço?
12/11/2018
Tassio
Meu código está assim, tentei usar sua dica mais ele me retorna um erro :(
def Delete():
if len(tree.selection()) == 0:
tkMessageBox.showinfo("Deletar","Selecione um Nome")
else:
result = tkMessageBox.askquestion('Deletar', 'Tem certeza disso', icon="warning")
if result == 'yes':
curItem = tree.focus()
contents =(tree.item(curItem))
selecteditem = contents['values']
tree.delete(curItem)
Database()
cursor.execute("DELETE FROM `tabela_alunos` WHERE `id_aluno` = %d" % selecteditem[0])
conn.commit()
atualizar()
cursor.close()
conn.close()
12/11/2018
Emerson Nascimento
De qualquer modo, com base no teu código, selecteditem[0] deveria conter o ID do aluno, porque é com o id que a query está trabalhando.
Mais uma coisa: apague o item da tree somente após apagar o registro do banco de dados (isso se a função atualizar() já não o fizer).
def Delete(): if len(tree.selection()) == 0: tkMessageBox.showinfo("Deletar","Selecione um Nome") else: result = tkMessageBox.askquestion('Deletar', 'Tem certeza disso', icon="warning") if result == 'yes': curItem = tree.focus() contents =(tree.item(curItem)) selecteditem = contents['values'] Database() cursor.execute("DELETE FROM `tabela_alunos` WHERE `id_aluno` = %d" % selecteditem[0]) conn.commit() tree.delete(curItem) // movi a exclusão do item da tree para depois de eliminação do registro físico atualizar() // se a função atualizar() refizer a tree, nem precisa da linha acima cursor.close() conn.close()
12/11/2018
Tassio
12/11/2018
Emerson Nascimento
A linha para o comando SQL não deveria ser:
cursor.execute("DELETE FROM tabela_alunos WHERE id_aluno = %d", (selecteditem[0]) )
ou
cursor.execute("DELETE FROM tabela_alunos WHERE id_aluno = %d", selecteditem[0] )
12/11/2018
Tassio
Esse é o erro "database is locked"
29/12/2018
Regina
criei um banco chamado database1, e criei duas tabelas, uma com nome:Empregado e outra com o nome seccao ambas com seus valores atribuidos. Como faço para mostrar os nomes de todas as sccoes que ficam em uma determinada cicdade?
Clique aqui para fazer login e interagir na Comunidade :)