1

テーブルをフィルタリングしたいのですが、テーブルにはuser_id列があり、実際のテーブルでフィルタリングしたいです(つまりusers.username)。

私のコード:

SELECT SQL_CALC_FOUND_ROWS `id`, `user_id`, `payment_type`, 
 `is_paid`, `is_invoiced`, `invoice_number`, `created_at`, `ip`,
 `data`, `coupon_code`, `payment_total`, 
 (select CONCAT(users.name,' ',users.surname) from users where users.id = orders.user_id) as fullname
FROM orders
WHERE (`fullname` LIKE '%M%' OR `payment_type` LIKE '%M%') ORDER BY `is_invoiced` asc

実行すると、次のようなエラーが表示されますUnknown column 'fullname' in 'where clause'

どうすれば解決できますか?

4

3 に答える 3

0

次のような節で使用CONCATしてみてください。WHERE

SELECT SQL_CALC_FOUND_ROWS `id`, `user_id`, `payment_type`, 
`is_paid`, `is_invoiced`, `invoice_number`, `created_at`, `ip`,
`data`, `coupon_code`, `payment_total`, 
(select CONCAT(users.name,' ',users.surname) from users
WHERE CONCAT(users.name,' ',users.surname) LIKE '%M%'
and users.id = orders.user_id) as fullname
FROM orders
WHERE `payment_type` LIKE '%M%' ORDER BY `is_invoiced` asc
于 2013-06-16T11:57:32.713 に答える