Recent

Author Topic: Consultas SQL [Resolved]  (Read 6831 times)

tiagofelipebones

  • New Member
  • *
  • Posts: 13
Consultas SQL [Resolved]
« on: May 16, 2013, 01:59:53 pm »
Bom Dia Galera!
Sou novo aqui no fórum, estou com o seguinte dilema:
tenho duas tabelas
produto<-
->id
->nome
produto_promocao<-
->id
->id_produto

Aqui mostrando os campos relacionados, preciso fazer o seguinte:
tenho um formulario que seleciona os registros na tabela produto para buscar um produto para colocar na promoção, e preciso executar uma busca onde será listada apenas os produto que não estão na promoção para evitar promoção duplicada e executo a seguinte select:

sqltexto := 'SELECT produto_promocao.id_produto, produto.id, produto.nome  '+
' FROM produto '+
' INNER JOIN produto_promocao ON (produto.id = produto_promocao.id_produto) '+
' WHERE (produto_promocao.id_produto <> produto.id) AND (produto.nome LIKE "'+edpesquisa.text+'%")';
Porém a pesquisa não me retorna nehum dado, Alguma dica?
Obrigado
« Last Edit: May 18, 2013, 03:24:15 am by tiagofelipebones »

zzzato

  • New Member
  • *
  • Posts: 22
  • A delphi developer who is moving to debian
Re: Consultas SQL
« Reply #1 on: May 16, 2013, 03:17:16 pm »
Bom Dia Galera!
Sou novo aqui no fórum, estou com o seguinte dilema:
tenho duas tabelas
produto<-
->id
->nome
produto_promocao<-
->id
->id_produto

Aqui mostrando os campos relacionados, preciso fazer o seguinte:
tenho um formulario que seleciona os registros na tabela produto para buscar um produto para colocar na promoção, e preciso executar uma busca onde será listada apenas os produto que não estão na promoção para evitar promoção duplicada e executo a seguinte select:

sqltexto := 'SELECT produto_promocao.id_produto, produto.id, produto.nome  '+
' FROM produto '+
' INNER JOIN produto_promocao ON (produto.id = produto_promocao.id_produto) '+
' WHERE (produto_promocao.id_produto <> produto.id) AND (produto.nome LIKE "'+edpesquisa.text+'%")';
Porém a pesquisa não me retorna nehum dado, Alguma dica?
Obrigado

IMHO,  this issue IS OT bcause is not lazarus issue but SQL issue.
You're newbie, so this time I'll answer you.
INNER JOIN IS STRICT JOIN. SO, DOU YOU KNOW WHAT'S MEAS STRICT JOIN?

Cher.

A.
« Last Edit: May 16, 2013, 03:36:12 pm by zzzato »
"Anything that can go wrong will go wrong"

tiagofelipebones

  • New Member
  • *
  • Posts: 13
Re: Consultas SQL
« Reply #2 on: May 17, 2013, 01:22:47 pm »
Good Morning Friend zzzato.Sorry to post here on sql, I'm having trouble with this query if I do a simple query returns results with INNER JOIN not have results; really am newbie and I have some difficulties with sql;Thank you for your attention.

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Re: Consultas SQL
« Reply #3 on: May 17, 2013, 01:28:57 pm »
Isn't this a bit funny: first link on
Code: [Select]
INNER JOIN produto_promocao ON (produto.id = produto_promocao.id_produto) '+
then try to negate it:!??!?
Code: [Select]
' WHERE (produto_promocao.id_produto <> produto.id)

I would remove this where clause.

Also, if you have trouble with SQL, try running the query in a graphical query tool (e.g. FlameRobin for Firebird, pgadmin for Postgresql, phpmyadmin or other tools for mysql).
This will help you see if the SQL is valid and whether you get the records you expect.
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

tiagofelipebones

  • New Member
  • *
  • Posts: 13
Re: Consultas SQL
« Reply #4 on: May 17, 2013, 01:42:45 pm »
Good Morning Friend BigChimp!
made changes to the code, however no results.
Quote
sqltexto := 'SELECT produto.id, produto.nome, produto_promocao.id_produto  '+
' FROM produto '+
' INNER JOIN produto_promocao ON (produto_promocao.id_produto = produto.id ) '+
' WHERE (produto.id <> produto_promocao.id_produto) AND (produto.nome LIKE "'+edpesquisa.text+'%")';
Need to select all records from the product table that are not in the table produto_promocao FK -> id_promocao.
Thank you for your attention

BigChimp

  • Hero Member
  • *****
  • Posts: 5740
  • Add to the wiki - it's free ;)
    • FPCUp, PaperTiger scanning and other open source projects
Want quicker answers to your questions? Read http://wiki.lazarus.freepascal.org/Lazarus_Faq#What_is_the_correct_way_to_ask_questions_in_the_forum.3F

Open source including papertiger OCR/PDF scanning:
https://bitbucket.org/reiniero

Lazarus trunk+FPC trunk x86, Windows x64 unless otherwise specified

Lacak2

  • Guest
Re: Consultas SQL
« Reply #6 on: May 17, 2013, 02:20:38 pm »
Quote
sqltexto := 'SELECT produto.id, produto.nome, produto_promocao.id_produto  '+
' FROM produto '+
' INNER JOIN produto_promocao ON (produto_promocao.id_produto = produto.id ) '+
' WHERE (produto.id <> produto_promocao.id_produto) AND (produto.nome LIKE "'+edpesquisa.text+'%")';
Need to select all records from the product table that are not in the table produto_promocao FK -> id_promocao.
'SELECT produto.id, produto.nome  '+
' FROM produto '+
' WHERE (produto.nome LIKE "'+edpesquisa.text+'%") AND '+
'  NOT EXISTS (SELECT * FROM produto_promocao WHERE produto_promocao.id_produto = produto.id )';

tiagofelipebones

  • New Member
  • *
  • Posts: 13
Re: Consultas SQL
« Reply #7 on: May 18, 2013, 03:22:17 am »
Quote
sqltexto := 'SELECT produto.id, produto.nome, produto_promocao.id_produto  '+
' FROM produto '+
' INNER JOIN produto_promocao ON (produto_promocao.id_produto = produto.id ) '+
' WHERE (produto.id <> produto_promocao.id_produto) AND (produto.nome LIKE "'+edpesquisa.text+'%")';
Need to select all records from the product table that are not in the table produto_promocao FK -> id_promocao.
'SELECT produto.id, produto.nome  '+
' FROM produto '+
' WHERE (produto.nome LIKE "'+edpesquisa.text+'%") AND '+
'  NOT EXISTS (SELECT * FROM produto_promocao WHERE produto_promocao.id_produto = produto.id )';

Good Night Friend Lacak2!
It worked perfectly!
Thanks to people like you that knowledge is disseminated! thank you

 

TinyPortal © 2005-2018