私はSQLにまったく慣れておらず、これはかなり複雑なコマンドです。
SELECT users.name,
from_unixtime(activity.time_stamp, "%D %b %Y %l:%i:%S"),
activity.activity,
activity.rfid_tag,
chemicals.description
FROM activity
JOIN chemicals ON chemicals.bar_code = activity.bar_code
JOIN users ON users.badge_number=activity.badge_number
WHERE (activity="login")
OR (activity="logout")
OR (activity LIKE "Admin:%")
OR (activity="tag")
OR (activity="untag")
OR (activity LIKE "check out%")
OR (activity LIKE "pour%")
OR (activity="check out (unscheduled)")
OR (activity="not poured after checking out")
OR (activity LIKE "invalid:%")
ORDER BY time_stamp DESC
実行すると、WHEREの最後のOR(867から723)に一致する行のみが返されます。たとえば、activity = "login"の行は表示されませんが、SELECT * FROM activity WHERE activity="login"
いくつかの行が返されます。
私は何が間違っているのですか?(そしてそれが「INNERJOIN」である必要がある場合)?
アップデート
結合を追加する前に、これは(複雑なWHEREで)機能していると言っておく必要がありました(そして私は完全なSQL初心者です)。