PHP/MySQL | Помощь по SQL (вложенный запрос)
Bimax (23.10.2018 в 15:03)
TuT (23.10.2018 в 14:49)
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
Если я тебя правильно понял
Вот та же логика как в первом твоем запросе была у меня, но в этом случае выводятся города в которых есть фирмы, если поменять знак = на != то тогда города дублируются в зависимости от колличества фирм
Что-то тут не так, и я не могу понять какой момент пропущен
TuT (23.10.2018 в 14:49)
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
Если я тебя правильно понял
<?
$q = "SELECT * FROM `city`,`firm` WHERE (`city`.`id` = `firm`.`id_city`)";
//или так, если нет названий городов
$q = "SELECT * FROM `city`,`firm` WHERE (`city`.`id` = `firm`.`id_city` AND `city`.`name` = '".NULL."')";
Вот та же логика как в первом твоем запросе была у меня, но в этом случае выводятся города в которых есть фирмы, если поменять знак = на != то тогда города дублируются в зависимости от колличества фирм
Что-то тут не так, и я не могу понять какой момент пропущен
имеешь ввиду, вывести города, которые не использовались ещё в фирмах?
Avenax (23.10.2018 в 16:10)
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
$sql = "SELECT city.name FROM city, firm WHERE city.id != firm.id_city";
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
$sql = "SELECT city.name FROM city, firm WHERE city.id != firm.id_city";
Так и делаю,
В базе у меня 4 города, фирм в базе 3 (фирмы юзают только 3 города из базы, кроме города №3)
В таком случае результат вида:
Город 1
Город 1
Город 2
Город 2
Город 3
Город 3
Город 3
Город 4
Город 4
Avenax (23.10.2018 в 16:24)
Bimax (23.10.2018 в 15:03)
TuT (23.10.2018 в 14:49)
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
Если я тебя правильно понял
Вот та же логика как в первом твоем запросе была у меня, но в этом случае выводятся города в которых есть фирмы, если поменять знак = на != то тогда города дублируются в зависимости от колличества фирм
Что-то тут не так, и я не могу понять какой момент пропущен
имеешь ввиду, вывести города, которые не использовались ещё в фирмах?
Bimax (23.10.2018 в 15:03)
TuT (23.10.2018 в 14:49)
Bimax (23.10.2018 в 13:50)
Вообщем суть такова
Есть 2 таблицы, city и firm
Структура таблицы city - id, name
Структура таблицы firm - id, name, id_city
Мне нужно вывести названия городов, которые не имеют связи с какой-либо фирмой, т.е город в котором ни одна из фирм не расположена
Если я тебя правильно понял
<?
$q = "SELECT * FROM `city`,`firm` WHERE (`city`.`id` = `firm`.`id_city`)";
//или так, если нет названий городов
$q = "SELECT * FROM `city`,`firm` WHERE (`city`.`id` = `firm`.`id_city` AND `city`.`name` = '".NULL."')";
Вот та же логика как в первом твоем запросе была у меня, но в этом случае выводятся города в которых есть фирмы, если поменять знак = на != то тогда города дублируются в зависимости от колличества фирм
Что-то тут не так, и я не могу понять какой момент пропущен
имеешь ввиду, вывести города, которые не использовались ещё в фирмах?
Да, да)))
Bimax, попробуй так
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
На всякий случай оставлю свой гкод:
$max = 10; // лимит итераций (устанавливать от расчета кол-ва городов в таблице city)
for($i=1; $i!=$max; $i++)
{
if($db -> query("SELECT `id` FROM `firm` WHERE `id_city` = '".$i."' ") -> num_rows == 0)
{
$city = $db -> query("SELECT `name` FROM `city` WHERE `id` = '".$i."'") -> fetch_row();
echo $city[0].'<br />';
}
}

SayrusCraft, запрос в цикле => руки под топор

Avenax (23.10.2018 в 16:48)
SayrusCraft, запрос в цикле => руки под топор
SayrusCraft, запрос в цикле => руки под топор

Наследие DCMS

Avenax (23.10.2018 в 16:44)
Bimax, попробуй так
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
Bimax, попробуй так
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
Одним запрос без других манипуляций никак не решить? У меня просто 4 задания на выборку из по одниму запросу на каждое, 3 сделал, а вот это не могу решить.
P.S Кстати это мне задание для джуна дали

________
посл. ред. 23.10.2018 в 17:04; всего 1 раз(а); by Bimax
Bimax (23.10.2018 в 16:57)
Avenax (23.10.2018 в 16:44)
Bimax, попробуй так
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
Одним запрос без других манипуляций никак не решить? У меня просто 4 задания на выборку из по одниму запросу на каждое, 3 сделал, а вот это не могу решить.
P.S Кстати это мне задание для джуна дали
Avenax (23.10.2018 в 16:44)
Bimax, попробуй так
$1sql = SELECT city.id FROM city, firm WHERE city.id = firm.id_city
$ids = implode(',', $1sql[id]);
$2sql = SELECT city.id FROM city WHERE NOT IN ($ids)
Одним запрос без других манипуляций никак не решить? У меня просто 4 задания на выборку из по одниму запросу на каждое, 3 сделал, а вот это не могу решить.
P.S Кстати это мне задание для джуна дали

пробни
SELECT с.id FROM city с LEFT OUTER JOIN firm а ON с.id = а.id_city WHERE а.id_city IS NULL
Avenax (23.10.2018 в 17:15)
пробни
SELECT с.id FROM city с LEFT OUTER JOIN firm а ON с.id = а.id_city WHERE а.id_city IS NULL
пробни
SELECT с.id FROM city с LEFT OUTER JOIN firm а ON с.id = а.id_city WHERE а.id_city IS NULL
Бог ты мой, это просто ШЕДЕВРАЛЬНО!!! Это работает

Спасибо большое Саша)
Пойду читать о той магии что ты использовал
