Всеподзапрос возвращает более чем на 1 строку
У меня есть две таблицы
первая таблица: wp_frm_item_metas второй стол: wp_frm_items
Теперь я хочу meta_value на основе wp_frm_items полей таблицы значения ,
Я уволил этот sql. она возвращает меня подзапрос возвращает более чем на 1 строку
SELECT meta_value
FROM wp_frm_item_metas
WHERE (item_id=(
SELECT id
FROM wp_frm_items
WHERE form_id ='9' && user_id='1')
&& field_id=128)
Я попытался это решение
SELECT meta_value
FROM wp_frm_item_metas
WHERE (item_id=(
SELECT count(*) as c,id
FROM wp_frm_items
WHERE form_id ='9' && user_id='1')
&& field_id=128 && c > 1)
ORDER BY c DESC
Он возвращает эту Операнд ошибке должно содержать 1 столбец (ы)
Мой код
foreach($fp_id_c as $kid=>$id)
{
if (!$id or ($logged_in && !$user_ID)) return;
$id = (int)$id;
//echo $logged_in.'-'.(int)$user_ID;
if ($logged_in){
echo $ff_id_c[$kid];
global $wpdb;
echo "SELECT meta_value FROM wp_frm_item_metas WHERE (item_id=(SELECT count(*) as c,id FROM wp_frm_items WHERE form_id ='$kid' && user_id='". (int)$user_ID ."') && ORDER BY c DESC && field_id=$ff_id_c[$kid])";
$result_c= $wpdb->get_var("SELECT meta_value FROM wp_frm_item_metas WHERE (item_id IN (SELECT count(*) as c,id FROM wp_frm_items WHERE form_id ='$kid' && user_id='". (int)$user_ID ."') && field_id=$ff_id_c[$kid]) ORDER BY c DESC");
echo $result_c;
}
}
Все, что вы пытаетесь сделать, ваша логика не работает, вы не можете сделать 'WHERE item_id = (SELECT COUNT (*), как с, идентификатор)' ... Вы выбираете двух столбцов (count & id) и сказать, что они должны быть равны ONE столбцу (item_id). – Konerak
Можете ли вы показать пример данных? – shahkalpesh