Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MuitoCurioso

[Resolvido] Como criar selec com inner join

Recommended Posts

Olá, amigos.

Estou com um problema devido aos parcos conhecimentos.

Será que alguém pode me ajudar?

Não consigo exibir textos e estabelecer relação com o autor, cujo nome não aparece na publicação, devido a erro na elaboração da Select.

 

MEDIA (onde estão os textos): id, autor_id, titulo, textos...

USUARIOS: id, autor etc...

 

Fiz assim, mas está errado:

 

SELECT * FROM media 
	INNER JOIN usuarios ON usuarios.id = autor_id
	WHERE id = 'id' LIMIT $inicio, $qnt

 

Alguém pode me dar uma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

SELECT * FROM `media` INNER JOIN `usuarios` ON `autor_id` = `usuarios`.`id` WHERE `id` = 'id' LIMIT $inicio, $qnt

 

Amigo, deu esse erro:

 

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''media' INNER JOIN 'usuarios' ON 'autor_id' = 'usuarios'.'id' WHERE 'id' = 'id' ' at line 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
use o Responder Azul respondery.png

ou a 'Resposta Rápida'.

 

Os campos e as tabelas, devem ficar entre crase e não aspas simples

 

note a diferença, certo: `media`

 

errado: 'media'

Compartilhar este post


Link para o post
Compartilhar em outros sites

com INNER JOIN não precisa usar a clausula WHERE... a clausula ON serve para o msmo proposito...

 

tenta assim:

 

SELECT * FROM media INNER JOIN usuarios ON media.autor_id = usuarios.id AND id = 'id' LIMIT $inicio, $qnt

 

ah... e vou fazer umas perguntas...

 

a coluna "autor_id" eh da tabela "media", certo?

 

e outra pergunta???

 

no " id = 'id' " esse "id" que você esta comparando eh uma variavel ou uma coluna de uma tabela???

 

pq se for variavel, você esqueceu do cifrão, e se for uma coluna, NÃO SE USA aspas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

passando de uma forma mais amigável, vê se dá para entender

SELECT 
  m.*, --seleciona * da tabela media
  u.*  --seleciona * da tabela usuario
FROM 
  `media` m --especifica que media eu chamarei de m
INNER JOIN --une com relacionamento obrigatório 
  `usuarios` u --especifica que usuarios eu chamarei de u
ON --onde
  m.`autor_id` = u.`id` --o autor_id da tabela media for igual a id da tabela usuarios

Compartilhar este post


Link para o post
Compartilhar em outros sites

com INNER JOIN não precisa usar a clausula WHERE... a clausula ON serve para o msmo proposito...

Nada haver, o ON serve pra fazer a ligação entre os registros, mais não pra identificar qual registro ele quer

Então ele pode ter o WHERE com ON pra pegar as informações de TAL ou TAIS livros

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom brother... a unica vez que eu precisei usar nhjo meu site o INNER JOIN, tentei com o ON e o WHERE e deu erro... e tentei a msma coisa... só com o ON e deu certo... me de um exemplo ai que dê certo com as duas clausulas...

Compartilhar este post


Link para o post
Compartilhar em outros sites

C:\Users\Andrey>cd ..

C:\Users>cd ..

C:\>cd \dev\mysql\bin\

C:\dev\mysql\bin>mysql -u root -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.41 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database teste;
Query OK, 1 row affected (0.01 sec)

mysql> use teste;
Database changed

mysql> create table tabela1 ( id int( 11 ) not null, nome varchar( 12 ) not null );
Query OK, 0 rows affected (0.07 sec)

mysql> create table tabela2 ( id int( 11 ) not null, sobrenome varchar( 12 ) not null );
Query OK, 0 rows affected (0.06 sec)

mysql> insert into tabela1 values( 1, 'Andrey' );
Query OK, 1 row affected (0.01 sec)

mysql> insert into tabela2 values( 1, 'Knupp Vital' );
Query OK, 1 row affected (0.01 sec)

mysql> insert into tabela2 values( 2, 'Ferreira' );
Query OK, 1 row affected (0.01 sec)

mysql> insert into tabela1 values( 2, 'Marcos' );
Query OK, 1 row affected (0.00 sec)

mysql> select * from tabela1 inner join tabela2 on tabela1.id = tabela2.id where tabela1.nome = 'Andrey';
+----+--------+----+-------------+
| id | nome   | id | sobrenome   |
+----+--------+----+-------------+
|  1 | Andrey |  1 | Knupp Vital |
+----+--------+----+-------------+
1 row in set (0.00 sec)

mysql> select * from tabela1 inner join tabela2 on tabela1.id = tabela2.id where tabela1.nome = 'Marcos';
+----+--------+----+-----------+
| id | nome   | id | sobrenome |
+----+--------+----+-----------+
|  2 | Marcos |  2 | Ferreira  |
+----+--------+----+-----------+
1 row in set (0.00 sec)

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.