SQL-запрос сравнить с 3 таблицами - PullRequest
1 голос
/ 14 марта 2019

У меня вопрос по поводу sql запроса.

здесь у меня есть 3 таблицы, которые:

Таблица: elaun

1. elaun_kod (pk)
2. Jenis_elaun
3. peratus_elaun

таблица 2: staff_elaun

1. staff_elaunID (pk)
2. staff_ID  (fk)
3. elaun_kod  (fk)

Таблица 3: персонал

1. staff_ID (pk)

Итак, я хочу выбрать 'jenis_elaun' и 'peratus_elaun' из таблицы elaun, где их 'jenis_kod' равно 'jenis_kod' в таблице staff_elaun. А затем из таблицы staff_elaun я хочу сравнить staff_ID с staff_ID в таблице staff.

так вот мой запрос, но он ничего не отображал

$sql1 = mysql_query("
    SELECT elaun.*
    FROM elaun, staff_elaun, staff
    WHERE
        elaun.elaun_kod = staff_elaun.elaun_kod
        AND staff_elaun.staff_ID = staff.staff_ID
        AND staff.staff_ID = '$data[staff_ID]'
    ");

1 Ответ

0 голосов
/ 14 марта 2019

Вы описываете серию соединений между таблицами.Каждое объединение имеет условие, которому соответствуют строки в каждой таблице.

В SQL это задается предложением JOIN.

SELECT
    elaun.*
FROM elaun
    INNER JOIN staff_elaun USING (elaun_kod)
    INNER JOIN staff USING (staff_ID)

Затем примените ограничение с помощью WHERE clause.

SELECT
    elaun.*
FROM elaun
    INNER JOIN staff_elaun USING (elaun_kod)
    INNER JOIN staff USING (staff_ID)
WHERE
    staff.staff_ID = '… the ID value you want here …'

Конечно, вы не должны напрямую вводить значения в запрос;вместо этого используйте параметры запроса.См. Как я могу предотвратить внедрение SQL в PHP?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...