このクエリには少し問題があります。それはうまく機能しますが、私はDRYのファンであり、これは簡単に改善できるようです:
SELECT
users.*,
(
SELECT user_information.value
FROM users
LEFT JOIN user_information
ON user_information.userid = users.id
WHERE user_information.name = 'account_name'
),
(
SELECT user_information.value
FROM users
LEFT JOIN user_information
ON user_information.userid = users.id
WHERE user_information.name = 'account_code'
),
(
SELECT user_information.value
FROM users
LEFT JOIN user_information
ON user_information.userid = users.id
WHERE user_information.name = 'account_id'
),
WHERE ...
一部:
SELECT user_information.value
FROM users
LEFT JOIN user_information
ON user_information.userid = users.id
各サブクエリでまったく同じです (将来、約 10 個のサブクエリが存在する予定です) が、where 句は毎回変更されます。それを変数に保存し、それを使用して、mysql でそれぞれ異なる where 句を追加することはできますか?