объединить с двумя столбцами и получить значения полей из их внешнего ключа с помощью одного запроса SQL

0

У меня две таблицы:

  1. tbl_users (id, first_name, last_name, email, password)
  2. tbl_claims (id, assert_by, assert_to) (both taken_by и assert_to is user_id таблицы tbl_users означает внешний ключ)

Теперь, как я могу получить first_name и last_name как assert_by, так и assert_to userid с единственным SQL-запросом?

Я пытаюсь выполнить запрос ниже, но я даю неизвестную ошибку столбца, пока я использую его в where where.

SELECT c.*,
(select first_name from tbl_users where id=c.claimed_by) as claimed_by_fname,
(select last_name from tbl_users where id=c.claimed_by) as claimed_by_lname,
(select first_name from tbl_users where id=c.claimed_to) as claimed_to_fname,
(select last_name from tbl_users where id=c.claimed_to) as claimed_to_lname 
from tbl_claims as c INNER JOIN tbl_users as u ON u.id = c.claimed_by INNER JOIN
tbl_users as u1 ON u1.id = c.claimed_to where claimed_by_fname like '%kotak%'

Я знаю, что указанный выше sql-запрос неэффективен, я только что попробовал. Он дает мне запись без предложения where, но не работает с where clause.

  • 0
    Ваш вопрос не ясен, данные таблицы сообщений и ожидаемые данные
  • 0
    ладно минутку
Теги:

1 ответ

0
Лучший ответ

Вам не нужно подзаголовок просто присоединяться

select c.*
      , u1.first_name claimed_by_fname 
      , u1.last_name claimed_by_lname
      , u2.first_name claimed_to_fname 
      , u2.last_nameclaimed_to_lname
from tbl_claims as c 
INNER JOIN tbl_users as u1 ON u1.id = c.claimed_by 
INNER JOIN tbl_users as u2 ON u2.id = c.claimed_to 
where u1.claimed_by_fname like '%kotak%'
  • 0
    Привет, если я удаляю предложение where, то это дает мне точно такой же вывод, который я хочу, но с предложением where, которое он сообщает, имя_по_пользователя - неизвестный столбец. Любое предложение?
  • 0
    скажите мне имя таблицы, относящейся к столбцу где .. в любом случае ответ обновлен .. во избежание двусмысленности
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню