Получить одно значение с помощью внутреннего соединения

У меня есть две таблицы 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

Как получить одно значение с помощью внутреннего соединения.

2

Решение

Попробуй с 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
1

Другие решения

Просто используйте отличное от 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
1

Попробуй с

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

0
По вопросам рекламы [email protected]