2017-02-09 6 views
0

Просто ищите некоторую помощь с этим, я уверен, что это невероятно просто, но после стольких часов, занимающихся другими областями моего сайта, я собираюсь немного батти.MySQL Query для объединения таблиц на основе столбцов

я просто игровой конкурс в котором у меня есть таблица под названием «лидеры», который имеет только эти столбцы:

fk_memberid | points_total

Довольно просто. Затем у меня есть этот запрос, который я нашел в другом месте на этом форуме, чтобы получить рейтинг каждого участника.

SELECT 
    fk_memberid, 
    points_total, 
    (SELECT COUNT(*)+1 FROM leaders WHERE points_total>x.points_total) AS rank_upper, 
    (SELECT COUNT(*) FROM leaders WHERE points_total>=x.points_total) AS rank_lower 
FROM 
    `leaders` x 

Мой вопрос, как я могу связать столбец fk_memberid в другую таблицу под названием «члены» в соответствующем столбце «k_memberid»? Я делаю это все время, но по какой-то причине я боюсь в этом случае из-за различного типа запросов, с которыми я знаком выше.

Извините за возможный невероятно простой ответ. Цените помощь.

+0

выберите 'your_required_columns' из лидеров л осталось присоединиться к членам м на m.k_memberid = l.fk_member_id – rahulsm

ответ

0

Быстрый пример здесь:

SELECT l.fk_memberid, l.points_total, m.first_name FROM leaders l 
left join member m 
on m.k_member_id=l.fk_member_id 
WHERE ... 

Это даст вам обратно таблицу с 3 колонками, 2 из лидера таблицы и «first_name» (если он существует) из таблицы членов

+0

Это то, что мне нужно, но как (где) он подходит в запросе, который я предоставил? Я предполагаю, что вложенные элементы выбора и «лидеры x» меня путают. – WeekendCoder

+0

На самом деле я получил его на основе этого ответа: «SELECT x.fk_memberid, x.points_total, m.mem_fname, m.mem_surname, (SELECT COUNT (*) + 1 FROM лидеров WHERE points_total> x.points_total) AS rank_upper, (SELECT COUNT (*) FROM leader WHERE points_total> = x.points_total) AS rank_lower FROM 'leader' x left join members m on x.fk_memberid = m.k_memberid ORDER BY points_total DESC" – WeekendCoder

+0

Я не могу точно понять, какие данные вам нужны. Отправьте пример данных, которые у вас есть в обеих таблицах, и сообщите нам, что вы хотите извлечь –

0

Сделать одно: ВЫБЕРИТЕ * ИЗ ТАБЛИЦЫ 1 T1, Таблица2 T2 WHERE T1.column_name = T2.column_name AND Another_comditio (если хотите); может быть, это поможет вам

0

SELECT * FROM лидеров LEFT JOIN пользователей пО members.k_memberid = leaders.fk_memberid

Смежные вопросы