[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: LEFT JOIN
dvs
соединяю две таблицы по id
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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.