Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вопрос по SQL LEFT JOIN


Recommended Posts

Ребята и Девчата, всем привет ) 

 

Опять ковыряюсь в моделях, возник вопрос по выборке из таблиц он же LEFT JOIN или JOIN и тд. зачем писать вот так при сравнении 

"product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE 

product p, product_description pdp.product_id, pd.product_id

 

если можно вот так  

"product LEFT JOIN " . DB_PREFIX . "product_description ON (product.product_id = product_description.product_id) WHERE 
Змінено користувачем ArtenPitov
Надіслати
Поділитися на інших сайтах

Програмеры по природе ленивы же. У вас на несколько букв длиннее запрос :)

"Лень двигатель прогресса"

 

зато понятнее, а то потом догадываться какая где таблица  

Змінено користувачем ArtenPitov
Надіслати
Поділитися на інших сайтах

"Лень двигатель прогресса"

 

зато понятнее, а то потом догадываться какая где таблица  

Не надо догатываться

 

алиас прописывается по неким правилам

 

product_description pd

 

 

Но, иногда без алиасов не обойтись

 

SELECT p1.name as name1, p2,name as name2

FROM product p1

JOIN product p2

WHERE p2.product_id <> p1.product_id

 

 

только не запускайте этот селект

Надіслати
Поділитися на інших сайтах

Не надо догатываться

 

алиас прописывается по неким правилам

 

product_description pd

 

 

Но, иногда без алиасов не обойтись

 

SELECT p1.name as name1, p2,name as name2

FROM product p1

JOIN product p2

WHERE p2.product_id <> p1.product_id

 

 

только не запускайте этот селект

Спасибо, про alias понял, почитал, а почему не обойтись к примеру в этом запросе (ps Alias конструкция для меня немного новая) ? 

Надіслати
Поділитися на інших сайтах

 

Спасибо, про alias понял

Спасибо, ткнули мордой в грязь... как бы теперь правильно запомнить.. :)  alias alias alias

Надіслати
Поділитися на інших сайтах

Спасибо, ткнули мордой в грязь... как бы теперь правильно запомнить.. :)  alias alias alias

та ну,я даже не думал про это, мне только суть вопроса важна )

Надіслати
Поділитися на інших сайтах

здесь

пора бы уже уметь пользоваться пс :ugeek:

так это я уже давно прочитал ) 

Надіслати
Поділитися на інших сайтах

тогда зачем спрашивать очевидное? :ugeek:

Уже разобрался ) пол часа и вопрос решен )

Надіслати
Поділитися на інших сайтах

еще один вопрос, вот такой массив лучше делить на дав запроса или  извращаться is_array() все что во внутреннем массиве пишется в отдельную таблицу 

Array(    [image] => 123    [width] => 100    [height] => 100    [0] => Array        (            [name] => RU            [description] => RU        )    [1] => Array        (            [name] => EN            [description] => EN        )    [rating] => 0    [sort_order] => 0)
Надіслати
Поділитися на інших сайтах

о чем речь?

нужно было записать тексты под разные языки, уже решил 

Надіслати
Поділитися на інших сайтах

  • 4 years later...

Помогите, пожалуйста, выполнить вот такой запрос: OC3x

SELECT product_id FROM . DB_PREFIX . mytable WHERE price > 0

Этот запрос мне нужно добавить в getProductSpecials по пути /model/catalog/product.php.

Я подумал про 2 варианта:
1. Расширить существующий sql запрос, он был в одну строку, я попытался его разделить, чтобы было понятнее, но не смог решить свою задачу. И добавлял после product_special строчку  . DB_PREFIX . "mytable mt LEFT JOIN "

$sql = "SELECT DISTINCT ps.product_id, (
SELECT AVG(rating) FROM "
	. DB_PREFIX . "review r1 WHERE r1.product_id = ps.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM "
	. DB_PREFIX . "product_special ps LEFT JOIN "
	. DB_PREFIX . "product p ON (ps.product_id = p.product_id) LEFT JOIN "
	. DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN "
	. DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND ps.customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())
) GROUP BY ps.product_id";

2. Сделать свой запрос ниже:

$sql .= "SELECT product_id FROM ". DB_PREFIX . "mytable WHERE price > 0";

Естественно, в обоих случаях ошибки.
Мне уже не первый раз приходится прибегать к запросу с LEFT JOIN, читал разные статьи, но, не разобрался. Кажется, в Open Cart чересчур сложный запрос. Хотелось бы понять, как оно работает, может быть кто-то сможет доступно объяснить? :)
 

 

Змінено користувачем VladSiy
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.