php sql count из 3 таблиц - PullRequest
       2

php sql count из 3 таблиц

0 голосов
/ 02 ноября 2011

Мне нужно получить счет из таблицы, основываясь на данных из 2 других таблиц.

Это моя структура таблиц:

table1 (id, name)
table2 (id, a, b, c)
table3 (id, blah)

Могу ли я сделать все это в одном утверждении? Как то так:

SELECT count(*) from table3 WHERE table2.x=table1.name

Сложная часть - столбец x - это имя 'table1.name'. Так что я на самом деле не знаю, что такое х, когда я выполняю оператор.

Это заставляет меня думать, что мне нужно выполнить инструкцию, чтобы найти имя x, прежде чем я запусту эту.

Или ... может быть, какой-то JOIN?

ТЕКУЩИЙ КОД, КОТОРЫЙ Я ИСПОЛЬЗУЮ:

if ($rs[firearm] != "") {
    $sql_result2 = mysql_query("SELECT * FROM db_firearms WHERE name='$rs[firearm]'", $db);
    $rs2         = mysql_fetch_array($sql_result2);
    $sql_result3 = mysql_query("SELECT * FROM items_firearms WHERE player='$id'", $db);
    $rs3         = mysql_fetch_array($sql_result3);
    if ($rs3[$rs2[shortname]] < 1) {
        mysql_query("UPDATE players SET firearm = '' WHERE id ='$id'");
    }
}

1 Ответ

1 голос
/ 02 ноября 2011

Да, похоже, что присоединения будут необходимы.

SELECT count(*) AS num_rows 
FROM table3 
LEFT JOIN table1.name ON table1.name = table3.name 
INNER JOIN table2 ON table2.x = table1.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...