Есть следующий запрос:
$mysqli->query("SELECT itemid FROM inventories AS a WHERE ownerid = 1 IN(SELECT itemid FROM items WHERE itemid = a.itemid)");
Я пытаюсь провести все itemid из первого SELECT'а во второй SELECT, но проходит только первый itemid.
Хочу сделать что-то типа того, только одним запросом:
$q = $mysqli->query("SELECT itemid FROM inventories WHERE ownerid = 1");
while($x = $q->fetch_assoc())
{
$mysqli->query("SELECT itemid FROM items WHERE itemid = ".$x['itemid']."");
}
Допустим, что вы хотите получить все записи таблицы items
, для которых есть соответствия в таблице invetnories
с ownerid = 1
Или если смотреть с другой стороны, вы хотите получить все записи таблицы inventories
для ownerid = 1
, которые упоминаются в таблице items
Для этой цели обычно используют соединение таблиц, используя оператор inner join
:
SELECT itemid
FROM invetnories as a
INNER JOIN items as i on (i.itemid = a.itemid)
WHERE a.ownerid = 1
или в другую сторону
SELECT itemid
FROM items as i
INNER JOIN inventories as a ON (a.itemid = i.itemid and a.ownerid = 1)
Либо с подзапросом
SELECT itemid
FROM items
WHERE itemid IN (
SELECT itemid FROM inventories WHERE ownerid = 1
)
Вам надо почитать, как использовать JOIN
.
Вот этот запрос покажет Вам все itemid
из items
, которые в inventories
ownerid=1
.
SELECT i.itemid FROM items i
JOIN inventories inv ON i.itemid=inv.itemid
WHERE inv.ownerid=1
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, у меня проблема с кодировкой mysql - в место русских букв дает вопросительные знаки без квадратиков
У меня есть задача, получить ID элементов и php массива с дальнейшим применением в коде JSесть 2 массива: