Регистрация не работает должным образом

php sql join

45 просмотра

2 ответа

65 Репутация автора

Я новичок в SQL и пытаюсь получить данные с помощью соединения. Не знаю, что я делаю не так. У меня есть две таблицы.


Таблица record

recordID|activityName|userID 1 | sale | 5 2 | call | 5 3 | contact | 5

Таблица activity

activityID|activityData|userID 1 | 50 | 5 2 | 70 | 5 3 | xyz | 5

Результат должен быть

recordID|activityName|activityData|userID 1 | sale | 50 | 5 2 | call | 70 | 5 3 | contact | xyz | 5

Но это возвращается

recordID|activityName|activityData|userID 1 | sale | 50 | 5 2 | call | 70 | 5 3 | contact | xyz | 5 1 | sale | 50 | 5 2 | call | 70 | 5 3 | contact | xyz | 5 1 | sale | 50 | 5 2 | call | 70 | 5 3 | contact | xyz | 5

SELECT * FROM tblrecord tr, tblactivity ta WHERE tr.userID = ta.userID AND tr.userID = '5'

Почему это повторяет результат.

PS. userID - это единственное общее поле, ActivityID и recordID могут отличаться.

Автор: Sam B Источник Размещён: 18.07.2016 03:25

Ответы (2)


3 плюса

876469 Репутация автора

Во-первых, следуйте простому правилу: никогда не используйте запятые в FROMпредложении. Всегда используйте явный JOINсинтаксис.

Во-вторых, вы хотите присоединиться recordIdи activityId:

SELECT *
FROM tblrecord tr JOIN
     tblactivity ta 
     ON  tr.userID = ta.userID AND
         tr.recordId = ta.activityId
WHERE tr.userID = 5;

Кроме того, не используйте одинарные кавычки, если значение действительно число.

Автор: Gordon Linoff Размещён: 18.07.2016 03:27

1 плюс

201 Репутация автора

Добавлять

GROUP BY ID пользователя, ActivityID

на ваш запрос.

Автор: Marcin Pruciak Размещён: 18.07.2016 03:28
Вопросы из категории :
32x32