|
|
|
| есть такие данные в таблице
id id_var lang value
13 1 2 en
12 1 1 ua
11 1 0 ru
21 2 -1 no_lang
|
как выбрать всё по одному?
тоесть если 3 записи с разными языками(lang) то нужно выбрать только одну запись с языком равным "0".
если -1 то эту запись...
такая запись почему-то выбирает всё
SELECT a.*, b.`lang`, b.`value` FROM `vars` as a, `vars_value` as b WHERE b.`lang` = 0 OR b.`lang` = -1 ORDER BY a.`var`
|
| |
|
|
|
|
|
|
|
для: sl1p
(11.11.2009 в 01:19)
| | Ваш запрос вернет только
11 1 0 ru
21 2 -1 no_lang
|
а вам что нужно? Если вам нужно всего одну запись, но с приоритетом где есть -1, то тогда сортируйте по колонке lang
SELECT a.*, b.`lang`, b.`value` FROM `vars` as a, `vars_value` as b WHERE b.`lang` = 0 OR b.`lang` = -1 ORDER BY b.lang LIMIT 1
|
| |
|
|
|
|
|
|
|
для: sl1p
(11.11.2009 в 01:19)
| | За запятую между именами таблиц в списке FROM нужно расстреливать. Деревянными пулями.
До тех пор, пока люди не научатся читать учебник прежде, чем писать SQL-запросы.
В 99% случаях человек, применивший запятую, неподумав слизал кусок запроса откуда-то. | |
|
|
|
|
|
|
|
для: Trianon
(11.11.2009 в 08:42)
| | значит мой случай является из оставшихся 1%
:)
ну это логично. Учебник не вижу смысла читать, со сложными запросами не сталкиваюсь, а так просто логично.
Зачем тогда работает если это не правильно?) | |
|
|
|
|
|
|
|
для: sl1p
(12.11.2009 в 00:31)
| | >значит мой случай является из оставшихся 1%
не является.
>ну это логично. Учебник не вижу смысла читать, со сложными запросами не сталкиваюсь, а так просто логично.
Простите, что именно логично?
>Зачем тогда работает если это не правильно?)
Так ведь в программировании как... если неправильно написано , вовсе не факт, что работать вообще не будет.
Может работать неправильно.
Может работать правильно.
Может не работать.
Вот если правильно написано, то ничего не остается, кроме как рабортать правильно. | |
|
|
|
|
|
|
|
для: Trianon
(12.11.2009 в 00:58)
| | можно ламерский вопрос, я никогда не писал список таблиц через запятую. всегда писал типа t1 JOIN t2 ON t1.id = t2.id.
Так вот я задумался, а как происходит связывание таблиц, когда их перечисляют через запятую? | |
|
|
|
|
|
|
|
для: Gendalf
(12.11.2009 в 13:30)
| | грубо говоря каждую строку одной таблицы соединяет с каждой строкой другой...
если таблицы две по 1000 записей в каждой, то
1000 х 1000
если таблицы три, то
1000 х 1000 х 1000
и тд.
____
в калькуляторе моего телефона 1000 х 1000 х 1000 вызывает числовое переполнение | |
|
|
|
|
|
|
|
для: Gendalf
(12.11.2009 в 13:30)
| | примерно так t1 JOIN t2 ON 1 | |
|
|
|