SELECT * FROM `menu` LEFT JOIN `pages` ON menu.id = pages.pid
Но в таблице pages в поле `pid` такие значения - m1, m2, m3 , а в таблице menu `id` имеет такие значения 1, 2, 3
как связать?
Спустя 9 минут, 36 секунд (28.01.2012 - 12:42) alexbel2404 написал(а):
SELECT * FROM `menu` JOIN `pages` ON menu.id = SUBSTRING(pages.pid, 1, 1)
попробуй так, но не уверен что заработает.
3 аргумент функции наверно нужно будет больше сделать.
Спустя 23 минуты, 43 секунды (28.01.2012 - 13:06) Placido написал(а):
Цитата (alexbel2404 @ 28.01.2012 - 11:42) |
SELECT * FROM `menu` JOIN `pages` ON menu.id = SUBSTRING(pages.pid, 1, 1) попробуй так, но не уверен что заработает. 3 аргумент функции наверно нужно будет больше сделать. |
SUBSTRING(pages.pid, 2, 1000) - последний аргумент будет зависеть от максимального id(pid) в таблицах. Поэтому, думаю, лучше использовать CONCAT()
SELECT * FROM `menu` LEFT JOIN `pages` ON CONCAT('m', menu.id) = pages.pid;
Спустя 2 минуты, 32 секунды (28.01.2012 - 13:09) dvs написал(а):
Забыл добавить в поле в поле `pid` не только такие значения - m1, m2, m3, но и 1, 2 ,3 тоже есть, второй вариант наверное подойдет
Спустя 12 минут (28.01.2012 - 13:21) dadli написал(а):
Цитата |
Забыл добавить в поле в поле `pid` не только такие значения - m1, m2, m3, но и 1, 2 ,3 тоже есть |
если так, то как варянт так
SELECT * FROM `menu` LEFT JOIN `pages` ON menu.id = SUBSTRING(pages.pid,2)
OR
`menu`.`id` = pages.pid