У меня есть таблица, подобная этой
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(), пожалуйста, дайте мне знать, как это сделать.
заранее спасибо
Используйте соединение с самим собой. 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)
Вы можете использовать запрос соединения, как показано ниже,
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 для родительской строки