1. ホーム
  2. sql

[解決済み] アクセスクエリーエラー(from句のシンタックスエラー)

2022-02-05 05:43:28

質問

$consulta3 = "SELECT * FROM Dept INNER JOIN Userinfo INNER JOIN Checkinout
                     on Dept.DeptName = '$departamento'
                     where Dept.Deptid = Userinfo.Deptid AND Userinfo.Name = Checkinout.name";

このクエリでやろうとしていることは:私は、すべての部署名とIDを持つDeptというテーブルを持っている、ユーザー情報には、ユーザー名、部署IDとIDを持っています。また、私はユーザーIDと時間を持つcheckinoutと呼ばれる第3のテーブルを持っています。

そこで、(部署名を使って)Checkinoutテーブルから、その部署に属する人のデータをすべて持ってきたいのですが、そのクエリを実行するとエラーが発生します。

syntax error in from clause. sql state 37000 in sqlexecdirect

で、解決できない。私はAccesデータベースを使用しています。

ありがとうございました。

解決方法は?

Accessでは、絶対に括弧が必要です。 FROM 節は、複数のジョインを含むすべてのクエリで使用できます。 もしAccessが使えるなら、クエリデザイナーで新しいクエリを作成してテストしてください。 クエリデザイナーが便利な理由の一つは、データベースエンジンが満足するような括弧の規則を知っているからです。

このようなクエリから始めてください。 によるフィルタリングは気にしないでください。 Dept.DeptName この時点では 結合が正しく設定されていることを確認するだけです。

SELECT *
FROM
    (Dept
    INNER JOIN Userinfo
    ON Dept.Deptid = Userinfo.Deptid)
    INNER JOIN Checkinout
    ON Userinfo.Name = Checkinout.name

結合を正しく設定したら、フィルタ制約を追加します。 WHERE Dept.DeptName ... ).