@timofy

Как достать значения из нескольких таблиц MySQL, чтобы в результате можно было определить из какой таблицы какие значения извлеклись?

Как достать значения из 3х таблиц MySQL, чтобы в результате можно было определить из какой таблицы какие значения извлеклись?
Такой вариант не подходит:
SELECT id
    FROM table1
    WHERE name= 'Tom'
    UNION 
    SELECT id
    FROM table2
    WHERE name= 'Tom'
    UNION 
    SELECT id
    FROM table3
    WHERE name= 'Tom'

так как он объединяет все найденные значения в один массив, а нужно в результате запроса знать какие значения из какой таблицы извлеклись
  • Вопрос задан
  • 114 просмотров
Решения вопроса 2
erge
@erge
Примус починяю
SELECT 'table1' as tabl, id
  FROM table1
  WHERE name= 'Tom'
UNION 
SELECT 'table2' as tabl, id
  FROM table2
  WHERE name= 'Tom'
UNION 
SELECT 'table3' as tabl, id
  FROM table3
  WHERE name= 'Tom'
Ответ написан
Комментировать
@PapaStifflera
Родился, вырос...
SELECT 'table1' as tbl, id
    FROM table1
    WHERE name= 'Tom'
    UNION 
    SELECT 'table2', id
    FROM table2
    WHERE name= 'Tom'
    UNION 
    SELECT 'table3', id
    FROM table3
    WHERE name= 'Tom'
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
isset89
@isset89
Врёшь, тебе нравится
вообще не понятен вопрос, но я рискну:

group_concat(distinct a.id )AS table1_id, ifnull(group_concat(distinct b.id), '-') AS table2_id, group_concat( distinct c.id) AS table3_id
from table1 a
left join table2 b on a.name = b.name
left join table3 c on c.name = b.name or a.name=c.name

where a.name='tom' or b.name ='tom' or c.name='tom'
так?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы