Вопрос по обьединению JOIN на примере

Ekklipce

Новичок
Вопрос по обьединению JOIN на примере

Не знаю возможно ли это одним запросом, однако ж вот :

TABLE element (база элементов) :
id-name-producer-cat-params
1-KT500---LG--------5----test
2-KT600---LG--------5----test

TABLE offer (предложения, 1 элемент можно предложить много раз)
id-element-price....(ещё есть, но не важно)
1-----1------1000
2-----1------2000
3-----1------3000

связь : element.id = offer.element

Как одним запросом уникально по ID выбрать все из двух таблиц..

была идея дописать элементам из element, которых нет в offer 0 перед ID : "0".element.id .. и нутром чую что без JOIN не обойтись.., а тем что есть - оставить ID из offer offer.id
 

Ekklipce

Новичок
-----id-----------------------name----------------price

1(offer.id) --------- KT500(element.name) - 1000
2(offer.id) --------- KT500(element.name) - 2000
3(offer.id) --------- KT500(element.name) - 4000
02(element.id??) -- KT600--------------------- 0 (или NULL или что ещё)

ID.. в offer могут быть насколько element.id потому offer.id и element.id могут совпасть.. - не будет уникальности

как идею предложил добавить нолик спереди для element.id
 

young

Новичок
пробуй

select offer.id, element.name
FROM element left join offer ON (element.id = offer.element)

писал по памяти, могут быть ошибки ;)
 

Ekklipce

Новичок
дальше сам понял

вот для фага форума :

SELECT IF (
ISNULL(
offer.id
), element.id, offer.id
), element.name
FROM element
LEFT JOIN offer ON ( element.id = offer.element )

-~{}~ 06.07.05 12:05:

а вот запрос, который был нужен изначально, сверху ввел упрощенныые условия сильно :
не повесит ли он базу.. :(. записей будет в offer больше 100000 (

SELECT IF (ISNULL(offer.id), CONCAT( '0', element.id ), offer.id) AS id,
element.name AS name,
producer.name AS producer, element.params AS params,
offer.price AS price,
supplier.min_offer AS min_offer,
offer.store_count AS store,
offer.period AS period,
offer.min_count AS min_package

FROM element
LEFT JOIN offer ON ( element.id = offer.element )
LEFT JOIN producer ON ( element.producer = producer.id )
LEFT JOIN supplier ON ( supplier.id = offer.supplier )
 
Сверху