Получить имя родителя в дочерней записи в IN () из той же таблицы в Mysql

0

У меня есть таблица, подобная этой

tax_id    tax_name          parent_tax_id
1         Sales Tax         0
2         Lodging Tax       0
3.        Resort Tax        1
4.        Hospitality Tax   2

Select tax_name, tax_id from taxes WHERE tax_id IN (3,4).

Этот выше запрос получит мне две строки id 3 и 4, мне нужно получить tax_name своего родителя в той же строке:

SELECT tax_name, tax_id, 
(SELECT tax_name FROM taxes ....) as parent_tax_name 
from taxes WHERE tax_id IN (3,4)

и мне нужно использовать только IN(), пожалуйста, дайте мне знать, как это сделать.

заранее спасибо

Теги:

2 ответа

1

Используйте соединение с самим собой. LEFT JOIN, потому что не каждая строка, кажется, имеет родителя

SELECT 
  taxes.tax_name, 
  taxes.tax_id, 
  parent.tax_name AS parent_tax_name 
FROM
  taxes LEFT JOIN taxes AS parent ON taxes.parent_tax_id = parent.tax_id
WHERE 
  taxes.tax_id IN (3,4)
1

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

Select t.tax_name, t.tax_id, tt.tax_name as parent_tax from taxes as t left join taxes as tt on (t.parent_tax_id = tt.tax_id) WHERE t.tax_id IN (3,4)

parent_tax будет именем tax_name для родительской строки

Ещё вопросы

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