MySQL объединяет три таблицы

0

Я написал следующий запрос mysql

SELECT distinct name, date
FROM table1
JOIN table2 ON (table2.item_id = table1.item_id)
where table1.id IN (SELECT run_id FROM 
table3 where table3.status = 'FAIL') and table1.createdate >= '2011-01-01'
 ; 

Я хочу включить другое полевое message из table3 в мой вывод.

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

Теги:
join
inner-join
left-join

4 ответа

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

Там не достаточно информации, чтобы полностью ответить на вопрос. Мы также хотим знать:

  1. Имеет ли status приходят колонки из table1 или table3
  2. Может ли быть более одной записи table3 с runid которая соответствует значению table1.id?
  3. Если может быть, table3.message значение table3.message вы хотите показать?

Не зная эту информацию, мы можем только догадываться. Вот моя догадка:

SELECT distinct name, date, message
FROM table1 t1
INNER JOIN table2 t2 ON t2.item_id = t1.item_id
INNER JOIN table3 t3 on t1.id =t3.run_id AND t3.status = 'FAIL'
WHERE t1.createdate >= '2011-01-01'
1

Попробуй это :-

SELECT DISTINCT T1.NAME , T1.DATE , T3.MESSAGE
FROM TABLE1 T1
JOIN TABLE2 T2
ON
T1.ITEM_ID = T2.ITEM_ID
INNER JOIN TABLE3 T3
ON
T1.ID = T3.RUN_ID
WHERE T3.STATUS = 'FAIL' AND T1.CREATEDATE >= '2011-01-01';
1

Попробуй это

SELECT distinct name, date, T3.message
FROM table1
JOIN table2 ON (table2.item_id = table1.item_id) 
INNER JOIN (SELECT run_id FROM 
table3 where status = 'FAIL') T3 ON T3.run_id = table1.id
where table1.createdate >= '2011-01-01'
0

попробуй это:

выберите различное имя, дату, сообщение из таблицы1 t1, table2 t2, table3 t3, где t1.item_id = t2.item_id и t1.item_id = t3.item_id и t3.status = 'FAIL' И t1.createdate> = to_date ('2011 -01-01, 'YYYY-MM-DD');

Ещё вопросы

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