Есть вопросы: 1. Select * from test where not id=4 что выведет? У меня выводит все записи у которых ид не 4, в книги же написано что ничего не должно выводить так как сервер райэсйьюэл оценивает выражение нот ид а затем проверяет соответствует ли оно 4,поскольку ид всегда не 0 то нот ид всегда равно 0 и не равно 4,следовательно бд ниче не выдаст. Я хз ваще! Мозг взорвался. У меня результат с ид 1,2,3,5,6 а у них пустой! И с нот ваще пипец! В книге одно у меня другое. У мну версия 5.0.45.
ибо здесь двоякая ситуация => разные версия мускуля по разному реагируют Code: [B]NOT, ![/B] Logical NOT. Evaluates to 1 if the operand is 0, to 0 if the operand is non-zero, and NOT NULL returns NULL. т.е. Code: mysql> SELECT * FROM test; +----+----------+ | id | num | +----+----------+ | 1 | 148 | | 2 | 68767867 | +----+----------+ 2 rows in set (0.00 sec) Code: mysql> SELECT * FROM test WHERE NOT(id)=null; Empty set (0.00 sec) mysql> SELECT * FROM test WHERE !(id)=null; Empty set (0.00 sec) Code: mysql> SELECT * FROM test WHERE NOT(id)=false; +----+----------+ | id | num | +----+----------+ | 1 | 148 | | 2 | 68767867 | +----+----------+ 2 rows in set (0.00 sec) mysql> SELECT * FROM test WHERE !(id)=false; +----+----------+ | id | num | +----+----------+ | 1 | 148 | | 2 | 68767867 | +----+----------+ 2 rows in set (0.00 sec) Code: mysql> SELECT * FROM test WHERE NOT(id)=true; +----+----------+ | id | num | +----+----------+ | 2 | 68767867 | +----+----------+ 1 row in set (0.00 sec) mysql> SELECT * FROM test WHERE !(id)=true Empty set (0.00 sec) Вывод: WHERE NOT id=2 интерпретируется как id!=2 WHERE ! id=2 интерпретируется как !(id=2) p.s. моя версия - 5.1.35
Делаю запрос селект наме фром а1 иннер джоин а2 юзе (ид) в обоих таблицах есть колонка наме и бд орет.Как тада быть? 2. Установил мускул,пишет ошибка юзинг пас но. Ключ -u root и хз. Непускает(
Какая ширина типа будет,если в скобках не указывать ее при создании таблицы? Create table (a int unsigned)
Есть две таблицы: `geo_cities` и `puppy_listings`. В первой таблице - список городов, во второй - объявления (титл, текст, city_id города согласно таблице `geo_cities`). Как вывести список только тех городов, city_id которых есть в объявлениях? Т.е. нужен запрос наподобие как-то так: "SELECT * FROM `geo_cities` WHERE `geo_cities`.city_id == (`puppy_listings`.city_id для любой строчки таблицы `puppy_listings`) ORDER BY city_name ASC" Реально ли сделать так?
Ты же сам ответил на свой вопрос как-то так Code: SELECT geo_cities.id FROM geo_cities , puppy_listings WHERE geo_cities.city_id = puppy_listings.city_id ORDER BY geo_cities.city_name ASC
Нее, не катит.. сделал так, но вот беда: он выводит в списке название города (geo_cities.city_name) столько раз, сколько его geo_cities.city_id упоминается в объявлениях (т.е. в таблице puppy_listings).. что же, если решения на sql нет, попробую в php убрать повторяющиеся элементы
SELECT distinct geo_cities.id FROM geo_cities, puppy_listings WHERE geo_cities.city_id = puppy_listings.city_id ORDER BY geo_cities.city_name ASC distinct устранит дубликаты в выводе
ёпт, давно изобрели GROUP BY Code: SELECT geo_cities.* FROM geo_cities, puppy_listings WHERE geo_cities.city_id = puppy_listings.city_id GROUP BY geo_cities.city_name ORDER BY geo_cities.city_name ASC
При двух одновременных соединений к одной таблице, последнее соединение обрывается. Ктонить знает параметр такой конфигурации? Потомучто я что-то не нашел...
вот подробный ман. мне кажется как раз по твоему вопросу. http://msdn.microsoft.com/ru-ru/library/ms187030.aspx