MySQL Left Join help - PullRequest
       3

MySQL Left Join help

0 голосов
/ 02 сентября 2011

Привет снова сообщество,

Я отправил вопрос чуть более часа назад с просьбой помочь с исправлением SQL-запроса, на который был быстро получен ответ и он мне очень помог. К сожалению, после анализа и дальнейшего использования выясняется, что запрос возвращал все строки в целевой таблице. Я подтвердил это, поместив mysql_fetch_object в цикл while.

Так что мне сейчас отчаянно нужно, чтобы кто-то взглянул на SQL-запрос и сказал мне, что идет не так и, если возможно, как это исправить. Мне просто нужно, чтобы одна строка (правильная строка) была найдена при использовании $ _SESSION ['model'] в качестве ссылки.

Ниже приведено полное содержание моего предыдущего вопроса.

Заранее спасибо.

=============================================== =============================

таблица web_quote_models

id | model       | product_id | cpu_id | ram_id | hdd_id | os_id | opt_id
=========================================================================
1  | 000001      | 1          | 1      | 1      | 1      | 1     | 1
2  | 000002      | 1          | 2      | 2      | 2      | 2     | 2
3  | 000003      | 1          | 3      | 3      | 3      | 3     | 3
4  | 000004      | 1          | 4      | 4      | 4      | 4     | 4

таблица web_quote_component_cpu

id | name
==========================================================================
1  | Intel® Core™ i3 2100 3.1GHz dual-core
2  | Intel® Core™ i5 2500 2.7GHz quad-core
3  | Intel® Core%trade; i7 2600 3.4GHz 8mb Cache dual-core

Итак, мне нужно выполнить запрос, который будет искать внутри таблицы web_quote_models и сопоставлять поле модели с $ _SESSION ['model'], а затем сопоставлять поле web_quote_models.cpu_id с web_quote_component.id.

Это то, что я имею до сих пор; Я думаю, я не могу быть слишком далеко.

("
 SELECT web_quote_component_cpu.name
 FROM web_quote_component_cpu
 LEFT JOIN web_quote_models
 ON web_quote_component_cpu.id=web_quote_models.cpu_id
 AND web_quote_models.name='".$_SESSION['model']."'
");

Огромное спасибо заранее всем, кто помогает.

Dan.

Ответы [ 3 ]

1 голос
/ 02 сентября 2011

С Left Join вы получаете записи из таблицы с левой стороны от join (то есть web_quote_component_cpu), даже если они не совпадают с другой таблицей. Если вы хотите, чтобы записи совпадали, используйте join вместо left join.

Это то, что вы спрашивали?

1 голос
/ 02 сентября 2011

ВЫБРАТЬ web_quote_component_cpu.name ИЗ web_quote_component_cpu ПРИСОЕДИНИТЬСЯ web_quote_models ON web_quote_component_cpu.id = web_quote_models.cpu_id ГДЕ web_quote_models.model = $ _2SESSION * * 100 * * * * * * 100 * * * * * * * * * * * * * 100 * * * * * * * * * * * * 100 * * * * * * * * * * * * * * * * * 100 * * * * * * * * * * * * 100 * * что-то типа * или 100 * * что-то похожее * или что-то подобное

0 голосов
/ 02 сентября 2011

Попробуйте это:

SELECT web_quote_component_cpu.name
   FROM web_quote_component_cpu
   LEFT JOIN web_quote_models ON web_quote_component_cpu.id=web_quote_models.cpu_id
   WHERE web_quote_models.name='".$_SESSION['model']."' LIMIT 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...