ANDing в состоянии соединения? - PullRequest
1 голос
/ 30 июня 2010

Можно ли использовать AND в состоянии соединения?

Например:

   SELECT * 
     FROM items  
LEFT JOIN products as prod ON prod.prod_id = items.prod_id  
LEFT JOIN partial as p ON p.prod_model = prod.prod_model 
                      AND p.order_id=$order_id  
    WHERE order_id = $order_id  
 ORDER BY prod.prod_weight ASC

Я предполагаю, что это не будет работать.$ order_id передается через переменную PHP.Я хочу, чтобы в частичной таблице была строка с одинаковыми order_id и prod_model, затем добавьте ее в строку .. и если не просто сохранить элемент. * И prod. *

Я знаюДолжен быть лучший способ сделать это, но сейчас я просто рисую пробелы.

Ответы [ 3 ]

1 голос
/ 30 июня 2010

Вы пробовали это и видели проблему. Да, вы можете сделать И в объединениях.

0 голосов
/ 30 июня 2010

Я не уверен, если круглые скобки являются обязательными, но, безусловно, яснее, если вы добавите несколько:

LEFT JOIN partial as p ON (p.prod_model = prod.prod_model 
                           AND p.order_id = $order_id)
0 голосов
/ 30 июня 2010

Ваш запрос должен работать.

Для внутренних объединений он функционально эквивалентен И критерию вторичного соединения к предложению ON или помещает его в предложение WHERE, но в вашем случае вы выполняете внешнее соединение, такВы хотите, чтобы оно было включено в предложение ON, так же, как вы написали это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...