Выборка из 2х таблиц с сравнением раных полей

Тема в разделе "Базы данных", создана пользователем sa2491, 17 июн 2013.

Модераторы: latteo
  1. sa2491

    sa2491 Постоялец

    Регистр.:
    12 май 2012
    Сообщения:
    68
    Симпатии:
    13
    Нужно сделать выборку:
    SELECT tab1.ID, tab2.Name, tab1.name
    FROM tab1 LEFT JOIN tab2 ON CONCAT(`product=`, tab1.ID)=Tab2.IDname;
    не мур мур :(
    по сути TAB1.ID - число (ID'шник), tab2.IDname - текст(product=) + ID'шник
    предполагаю ошибка в CONCAT(`product=`, tab1.ID) может нужно число в текст законвертить для начала?
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    Не ясно что в поле Tab2.IDname, если там просто число, то
    Код:
    SELECT tab1.ID, tab2.Name, tab1.name
    FROM tab1
    LEFT JOIN tab2 ON tab1.ID=tab2.IDname
    если там значения 'product=1', 'product=2'... то да

    Код:
    SELECT tab1.ID, tab2.Name, tab1.name
    FROM tab1
    LEFT JOIN tab2 ON tab2.IDname=CONCAT('product=', tab1.ID)
    
    а какая ошибка?
     
  3. sa2491

    sa2491 Постоялец

    Регистр.:
    12 май 2012
    Сообщения:
    68
    Симпатии:
    13
    Нашел косяк product= нужно было в двойные кавычки:), и все понеслось
    Код:
    SELECT  product_description.product_id,  product_description.Name,  url_alias.keyword
    FROM  product_description LEFT JOIN url_alias ON CONCAT("product_id=", product_description.product_id)=url_alias.query
    склероз задолбал, все забываю постоянно
     
    polyetilen нравится это.