|
|
|
| Как сделать выборку при LEFT JOIN table ON table.id LIKE %table.idr%
table.id | table.idr
2 | 1, 2, 3 | |
|
|
|
|
|
|
|
для: gOFREe
(29.08.2011 в 23:16)
| | Хм... пока не очень понятно, что вызывает сложности? Вы хотите осуществить самообъединение? | |
|
|
|
|
|
|
|
для: cheops
(30.08.2011 в 00:02)
| | $result = "SELECT company.*, company.id as idc, company.text as textc, cat.*,cat.id as idcat
FROM `cat`
LEFT JOIN company
ON company.razdel LIKE %cat.id%
WHERE cat.url = '".$_GET['a']."' and company.status > '0' ORDER BYcompany.id DESC
";
При таком запросе ругается на LIKE %cat.id% | |
|
|
|
|
|
|
|
для: gOFREe
(30.08.2011 в 19:24)
| | >LIKE %cat.id%
Вот так, кстати делать нельзя, тут придется задействовать CONCAT()
LIKE CONCAT('%', cat.id, '%')
|
А почему такое странное ресурсоемкое объединенение? Если cat.id - это числа, кроме того встречаются однозначные, двухзначные или трехздначные числа, то у вас с таким запросом будет множество проблем. | |
|
|
|
|
|
|
|
для: cheops
(31.08.2011 в 09:42)
| | проблема изначально в организации бд, а конкретно в хранении нескольких значений в одном поле, отсюда и появляется и геморрой и головняк
это прямое нарушение первой нормальной формы
вот тут достаточно хорошее описание нормализации
http://club.shelek.ru/viewart.php?id=177 | |
|
|
|
|
|
|
|
для: Valick
(31.08.2011 в 09:55)
| | Спасибо! буду учиться! | |
|
|
|