MySQL Join Query - PullRequest
       11

MySQL Join Query

0 голосов
/ 26 июля 2010

Мне нужно создать запрос на соединение для следующего:

Поставщик таблицы:

  • id
  • name

Таблицаsupplier_vehicles

  • id
  • supplier_id
  • vehicle_id

У поставщика может быть несколько транспортных средств.

На моей передней стороне-конец формы У меня есть список флажков - пользователь может выбрать несколько транспортных средств.Внутренний сценарий должен выполнить поиск и вернуть всех поставщиков, которые содержат любой из указанных идентификаторов транспортных средств.

Имя списка флажков - vehicle_type [], и оно будет отображаться в массиве $ _POST как (например,):

Array
(
    [0] => 1
    [1] => 4
    [2] => 6
)

В настоящий момент я могу использовать некоторые примеры SQL, чтобы можно было протестировать запрос, используя другие значения.

Ответы [ 2 ]

2 голосов
/ 26 июля 2010

Если вам известны идентификаторы транспортных средств, вы можете использовать предложение IN:

SELECT *
  FROM supplier s
     , supplier_vehicles v
 WHERE s.id = v.supplier_id
   AND v.vehicle_id IN (1, 4, 6)

Если вам нужны отдельные идентификаторы поставщиков, вы можете использовать DISTINCT.

SELECT DISTINCT s.supplier_id
  FROM supplier s
     , supplier_vehicles v
 WHERE s.id = v.supplier_id
   AND v.vehicle_id IN (1, 4, 6)
0 голосов
/ 26 июля 2010

Сначала создайте строку, в которой все элементы в вашем массиве разделены запятыми.Не знаю, на каком языке вы это делаете, но вы можете использовать функцию JOIN или пройти через массив.

В соответствии с вашим примером строка будет равна 1,4,6

Для вашего SQL-запроса:

"SELECT s.name
FROM supplier AS s
JOIN supplier_vehicles AS v
ON s.id = v.supplier_id
WHERE v.vehicle_id IN (" + stringName + ")"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...