MySQL - Inner Join of???
Ik met mijn slechte MySQL kennis kwam niet uit het volgende geval:
Ik heb 2 querys en deze wil ik samen voegen tot 1. Ik heb gegoogled en vond veel antwoorden over Inner Join maar het lukte mij maar niet en wist ook niet goed hoe ik moest en kon beginnen. Graag kunnen jullie mij helpen.
Query 1:
SELECT user_rank FROM user WHERE user_id=5
Query 2:
SELECT rank_rank FROM rank WHERE rank_id=user_rank
Deze user_rank krijg je dus uit de query daarboven
Groeten,
Yanick
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$userId = 5;
$sql = 'SELECT u.user_id, rr.rank_rank
FROM user AS u
INNER JOIN rank AS r
ON user_rank = rank_rank
WHERE u.user_id = '. (int) $userId;
?>
$userId = 5;
$sql = 'SELECT u.user_id, rr.rank_rank
FROM user AS u
INNER JOIN rank AS r
ON user_rank = rank_rank
WHERE u.user_id = '. (int) $userId;
?>
Gewijzigd op 07/07/2012 11:19:30 door Crispijn -
bedoel je?
De volgende query is eruit gekomen:
SELECT user.user_id, rank.rank_rank FROM user AS user INNER JOIN rank AS rank ON user_rank = rank_id WHERE user.user_id='$id'
Gewijzigd op 07/07/2012 11:55:50 door Yanick vB
"rank AS rank" dan heeft die alias natuurlijk geen nut. Tevens gebruik je dit ook weer nergens in je query...
Een alias scheelt typewerk en kan je dus als volgt gebruiken:
Crispijn, waarbij je dan ook nog in je WHERE statement die alias gebruikt. Anders is het blijkbaar nog niet nodig. Dus WHERE u.id = 1
Tevens is het de zinlooste query ter wereld, want je selecteert een id waar je op zoekt...
Voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
SELECT
user_name,
user_score,
FIND_IN_SET(user_score,
(SELECT GROUP_CONCAT(user_score
ORDER_BY user_score DESC)
FROM users)) AS ranking
FROM users
[WHERE user_id = 5]
user_name,
user_score,
FIND_IN_SET(user_score,
(SELECT GROUP_CONCAT(user_score
ORDER_BY user_score DESC)
FROM users)) AS ranking
FROM users
[WHERE user_id = 5]
Gewijzigd op 07/07/2012 12:38:49 door Ger van Steenderen
Elke keer verbaas ik me er weer over dat je het voor elkaar krijgt een query te bouwen waar elementen in zitten die ik nog niet ken :-)
Altijd leerzaam!
In de eerste tabel (user) staan alle user informatie zoals username, password, id maar ook rank_id. Deze rank_id staat ook in een andere tabel (rank) waaraan rank id is gekoppeld aan een rank naam.
Ah oké, dan gaat mijn eerdere reactie voor jou niet op.