Эй, я думаю, что я делаю это неправильно, но пробовал много способов, ни один из которых не дал мне желаемых результатов.Простая проблема с запросом MySQL - получение связанных записей, а также получение не связанных с ними
В принципе, у меня есть одно поле поиска, которое проверяет несколько таблиц. Моя проблема в том, что, когда, скажем, у элемента нет связанного лица, он не вернет результат для этого элемента. Кроме этого это нормально. Я понимаю, что проблема заключается в WHERE, требуя найти только записи, которые соответствуют другой таблице, но я не уверен, как это исправить.
Спасибо!
$q = "SELECT DISTINCT item.*
FROM item, item_people, people
WHERE item.record_id = item_people.item_id AND people.record_id = item_people.people_id
AND
item.live = '1'
AND
(concat_ws(' ',people.name_first,people.name) LIKE '%$search_param%' OR
item.name_title LIKE '%$search_param%' OR
item.city = '$search_param' OR
item.category LIKE '%$search_param%' OR
item.on_lists LIKE '%$search_param%')
$limit";
Вы абсолютно правы. Огромное спасибо. Что вы подразумеваете под "/ * Но не используйте *! * /" Когда я снял первую звездочку, запрос не удался. Еще раз спасибо! – user438204
@user - Ах, извините за путаницу. Лучше перечислить имена столбцов явно, а не использовать '*'. ** См.: [Ссылка на связанный вопрос] (http://stackoverflow.com/questions/65512/which-is-faster-best-select-or-select-column1-colum2-column3-etc) ** –