2014-12-15 4 views
-2

У меня есть запрос, MySQLMySQL JOIN выбрать только одну строку из второй таблицы

SELECT SensorName FROM Table1 WHERE Name = 'MyName'; 

позволяет сказать, я получаю 5 строк назад

Sensor1, 
Sensor2, 
Sensor3, 
Sensor4, 
Sensor5 

Теперь в другой таблице, у меня есть одна строка данных, это запрос

SELECT value1, value2, value3, value4, value5 from Table2 Where Name = 'MyName'; 

и это то, что я получаю.

value1  value2  value3  value  value5 
23.1669  14.5974  22.4009  19.9076  33.1585 

«Имя» является общее поле на обоих таблицах

Теперь я знаю, что эти два сопоставляются (имена датчиков отображаются со значениями), так как я могу получить что-то, как в одном запросе MySQL

NAME   VALUE 
Sensor1   23.1669 
Sensor2   14.5974 
Sensor3   22.4009 
Sensor4   19.9076 
Sensor5   33.1585 
+0

пожалуйста, найдите время, чтобы читать и комментировать ответы. tks :) –

ответ

0
SELECT SensorName, Value 
FROM Table1 
LEFT JOIN Table2 
ON Table1.Name = Table2.Name AND Table1.Name = "MyName" 

или

SELECT SensorName, Value 
FROM Table1 
LEFT JOIN Table2 
ON Table1.Name = Table2.Name 
WHERE Table1.Name = "MyName" 

вернет все совпадающие вхождения. вы должны изменить структуру Table2 на 2 поля (имя и значение).

+2

Я думаю, что это сложнее, чем это. Похоже, они пытаются изменить результаты? Это не просто объединение таблиц. – AdamMc331

+0

может быть. но из его выхода я понял, что ему нужно что-то подобное, даже если его оригинальный дизайн стола не подходит для него. –

0

Используйте это: Выберите t1.SensorName, t2.value1, t2.value2, t2.value3, t2.value4, t2.value5 из таблицы 2, t2 INNER JOIN table1 t1 как на table1.NAME = table2.NAME & & Tttable1.NAME = 'MYNAME' & & table2.NAME = 'MYNAME'

Смежные вопросы