У меня есть две таблицы calldetails и calltype
таблица вызовов
id calltype isactive
1 1 1
2 1 1
3 1 1
Таблица вызовов
id name isactive
1 mobile internet 1
ожидаемый результат
id name isactive
1 mobile internet 1
но я получил ниже результата
id name isactive
1 mobile internet 1
1 mobile internet 1
1 mobile internet 1
Я использовал ниже запрос
SELECT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN calldetails AS cd ON cd.`isactive` =1
WHERE ct.`isactive` =1
AND ct.`id` = cd.`calltype`
LIMIT 0 , 30
Как получить одно значение с помощью внутреннего соединения.
Попробуй с DISTINCT
SELECT DISTINCT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN calldetails AS cd ON cd.`isactive` =1
WHERE ct.`isactive` =1
AND ct.`id` = cd.`calltype`
LIMIT 0 , 30
Просто используйте отличное от select из calldetails:
SELECT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN (SELECT DISTINCT calltype, isactive FROM calldetails) cd ON cd.`isactive` =1
WHERE ct.`isactive` =1
AND ct.`id` = cd.`calltype`
LIMIT 0 , 30
Попробуй с
SELECT ct.`name` , ct.`id`
FROM calltype AS ct
INNER JOIN calldetails AS cd ON cd.`isactive` = ct.`isactive`
WHERE ct.`isactive` =1
LIMIT 0 , 30
Вот ссылка для проверки внутренней команды соединения:
http://www.w3schools.com/sql/sql_join_inner.asp