2014-01-17 7 views
0

Я пытаюсь вернуть все заказы от конкретного человека, у меня есть две таблицы, человек и заказ, и с помощью объединения он возвращает заказы человека, но для каждого заказа, который он возвращает квадратная сумма этого ордера, например, если два ордера одинаковы, они возвратят 4 из этих ордеров.Оператор MySQL, возвращающий слишком много строк

SELECT 
    o.* 
FROM 
    orderr o 
    LEFT JOIN person p 
    ON p.personID = o.personID 
WHERE p.first_name = ? 
+0

Попробуйте добавить 'DISTINCT'? Например: 'SELECT DISTINCT o. *'. Или, может быть, вам нужно удалить строки 'NULL', так как вы' LEFT JOIN'ing: 'WHERE p.first_name NOT NULL'? –

+0

Ваш запрос должен работать, см. Эту скрипту для простого примера: http://sqlfiddle.com/#!2/6e4b7/2/0. Что-то не так в ваших данных, я полагаю. – Aioros

ответ

0

попробовать этот

SELECT DISTINCT 
     o.* 
    FROM 
     orderr o 
     LEFT JOIN person p 
     ON p.personID = o.personID 
    WHERE p.first_name = ? 
Смежные вопросы