Имеется таблица A которая содержит product_id и имеется таблица B которая содержит product_id и status, как выполнить запрос чтобы с таблицы A получить все product_Id и отправить product_id на сравнение таблице B и с таблице B получить все статусы по product_id таблицы A?
SELECT
table_a.product_id, table_b.status
FROM
A table_a LEFT JOIN B table_b
ON table_a.product_id = table_b.product_id
A и B - так таблицы называются у вас в базе,
table_a и table_b - их синонимы в запросе
ну или вот так:
db_get_hash_single_array("SELECT
table_a.product_id as pid, table_b.status as pstat
FROM
A table_a LEFT JOIN B table_b
ON table_a.product_id = table_b.product_id",
["pid", "pstat"]);
получите массив
"product_id" => "статус",
...
извиняюсь, запрос чуть расширенный, исходя из этого у меня уже есть массив ($p_arr) который выводит:
Array
(
[0] => Array
(
[product_id] => 120
)
[1] => Array
(
[product_id] => 168
)
[2] => Array
(
[product_id] => 173
)
.....
)
как отправить данные product_id на ваш запрос чтобы сравнить с таблицей B product_id и с таблицы B вывести status в соответствии с отправленными product_id?
То есть ваш список product_id - это не содержимое таблицы, это именно массив, уже полученный прежде?
тогда
db_get_hash_single_array("SELECT product_id, status
FROM B WHERE product_id IN (?n)", $p_arr);
только ваш массив p_arr надо лолучать не через db_get_array, а через db_get_field(“SELECT pid FROM …”)
чтобы он был одномерным массивом
Array
(
120, 168, 173, .....
)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?n)’ at line 1 (1064)SELECT product_id, status FROM cscart_custom_base WHERE product_id_id IN (?n)
Покажите как именно Вы вызывали запрос и какие параметры туда передавали.
product_id_id название не верное id два раза , или так задумано?
Пропустил букву, db_get_fields