2013-11-17 6 views
3

Я написал запрос mysql и получил тот же результат дважды. Теперь я не могу исправить эту проблему. Кто-нибудь может мне помочь, пожалуйста.Mysql error duplicate results

SELECT first_name , second_name 
FROM profile_doctors_main , category 
WHERE (first_name LIKE "%'.(string)$name.'%" OR second_name LIKE "%'.$name.'%") 
    AND category_name LIKE "%'.$category.'%" AND city LIKE "%'.$city.'%" 

результат = Шарон Zing

Любой помогает будут оценены.

+0

'GROUP BY (first_name, second_name)' в конце запроса или 'SELECT DISTINCT first_name, second_name' –

+0

, но в базе данных есть только 2 tupples.how это получить? –

+0

Его получение из обеих таблиц, вы не присоединились к таблицам –

ответ

1

Когда вам нужно запрашивать данные из нескольких таблиц, вы должны использовать фразу «JOIN» и при необходимости использовать таблицу.

и при использовании «JOIN», вы должны добавить «ON» состояния, что делать что-то вроде «где» в качестве фильтра, удалить повторяющиеся результаты.

Попробуйте SQL следующее (как я не знаю, о поле таблицы, это просто пример)

'SELECT first_name , second_name FROM profile_doctors_main , category 
on profile_doctors_main.xxx = category.xxx 
WHERE (profile_doctors_main.first_name LIKE "%'.(string)$name.'%" 
OR profile_doctors_main.second_name LIKE "%'.$name.'%") 
AND category.category_name LIKE "%'.$category.'%" 
AND profile_doctors_main.city LIKE "%'.$city.'%"' 

есть еще одна проблема, что неправильно матч «и» состояние и «или» состояние ,

2
SELECT 
profile_doctors_main.first_name sfname, 
    profile_doctors_main.second_name slname, 
    category.first_name fname, 
    category.second_name lname 
FROM 
    profile_doctors_main, 
    category 
    WHERE (
     profile_doctors_main.first_name LIKE "%'.(string)$name.'%" AND category.first_name LIKE "%'.(string)$name.'%" 
     OR profile_doctors_main.second_name LIKE "%'.$name.'%" AND category.second_name LIKE "%'.$name.'%" 
    ) 
    AND category_name LIKE "%'.$category.'%" 
    AND city LIKE "%'.$city.'%"