У меня есть «контакты» таблица, как это:С помощью PHP, как мне получить соответствующий столбец в другой таблице?
contact_auto_inc user_id contact_id
1 1 3
2 1 5
3 2 1
4 3 5
5 3 2
6 1 6
и таблица «пользователь», как это:
user_id username
1 Simon
2 Bill
3 Tim
4 Brendan
5 Chris
6 Noel
То, что я хочу, чтобы напечатать соответствующие usernames
из contact_ids
.
user_id
Так что для 1, например, я хочу, чтобы напечатать:
Tim
Chris
Noel
Как я могу это сделать?
Я могу напечатать contact_ids
из contacts
таблицы хорошо с:
$user_id = $_SESSION['user_id'];
//we want to show contact_ids in the contacts table that have the $user_id above.
$select_from_contacts_table = "SELECT * FROM contacts WHERE user_id = '$user_id'";
//get the result of the above
$result=mysqli_query($con,$select_from_contacts_table);
while($row = mysqli_fetch_assoc($result)) {
$contact_id=$row['contact_id'];
echo $contact_id . "<br>";
}
Это будет печатать:
3
5
6
Но как я могу напечатать соответствующий username
столбец в таблице user
? Я пытался в течение нескольких часов с INNER JOIN
, но получаю ошибки и неправильные результаты, что-то вдоль линий:
$select_from_user_table = "SELECT DISTINCT contact_id, username
FROM contacts
INNER JOIN user
ON contacts.contact_id=user.user_id WHERE user_id = '$user_id'";
//get the result of the above
$result2=mysqli_query($con,$select_from_user_table);
//show the usernames
while($row = mysqli_fetch_assoc($result2)) {
echo $row['username'] . "<br>";
}
Спасибо за любую помощь.
Я только что написал правильный SQL с INNER JOIN и отправлял вам сообщения, но я заметил, что это точно так же, как и у вас, кроме DISTINCT - это не будет никакой разницей. Странно, что это не удается. – smozgur
Ahh! user_id = часть в конце. Предполагается, что он будет contacts.user_id. – smozgur