0

管理者用とユーザー用の 2 つのテーブルがあります。管理者とユーザーの両方の 1 つの HTML 選択ボックスが必要です。アクティブなユーザー/管理者のみが必要です。そのユーザー/管理者も foo テーブルにエントリを持っています。これまでのMySQLクエリは次のとおりです。

SELECT * FROM users u, admins a, foo f WHERE u.active ='1' AND (a.admin_id = f.admin_id OR u.user_id = f.user_id)

残念ながら、これはナンセンスな結果になります。前もって感謝します!

4

1 に答える 1

0

あなたのテーブルはこのように設定されていると思います。

foo (user_id, admin_id, ...)
users (user_id, active, ...)
admin (admin_id, active, ...)

その場合は、データベースの設計を再考する以外に (各ユーザーに user_level が割り当てられたすべてのユーザーに対して 1 つのテーブル)、次のことを試すことができます。UNION

SELECT users.user_id AS id
FROM foo INNER JOIN users ON foo.user_id = users.user_id
WHERE users.active = '1'
UNION
SELECT admins.admin_id
FROM foo INNER JOIN admins ON foo.user_id = admins.admin_id
WHERE admins.active = '1'
于 2013-01-14T12:45:44.957 に答える