есть запрос к базе My SQL:
SELECT [здесь куча всяких полей]
FROM [здесь куча всяких таблиц]
WHERE [здесь куча всяких условий]
и вот, для одного из полей в селекте нужно сделать дополнительно свой запрос внутри большого запроса, чтобы он выбирал данные из другой таблицы если значение одного из полей в основном селекте не NULL и ничего не делал если NULL. и там тоже свои FROM и WHERE. и этот второй селект нужно как то вставить внутрь основного селекта.
пыталась ставить разными способами но или ничего не выдается или ошибка
реально ваще? подскажите как
1. белочка - 31 Июля, 2012 - 07:39:10 - перейти к сообщению
2. Zuldek - 31 Июля, 2012 - 09:47:25 - перейти к сообщению
SELECT IF(value, (SELECT somedata FROM sometable),'')
http://www[dot]mysql[dot]ru/docs/man/Con[dot][dot][dot]w_functions[dot]html
http://www[dot]mysql[dot]ru/docs/man/Con[dot][dot][dot]w_functions[dot]html
3. белочка - 31 Июля, 2012 - 10:08:50 - перейти к сообщению
попробовала сделать. сделала так:
SELECT [здесь куча всяких полей]
IF(caps.set_code IS NOT NULL, (SELECT cap_sets.set_code AND cap_sets.set_name FROM caps, cap_sets WHERE caps.set_code = cap_sets.set_code),''),
FROM [здесь куча всяких таблиц]
WHERE [здесь куча всяких условий]
выдается:
Invalid query 2: Subquery returns more than 1 row
что я не так делаю?
SELECT [здесь куча всяких полей]
IF(caps.set_code IS NOT NULL, (SELECT cap_sets.set_code AND cap_sets.set_name FROM caps, cap_sets WHERE caps.set_code = cap_sets.set_code),''),
FROM [здесь куча всяких таблиц]
WHERE [здесь куча всяких условий]
выдается:
Invalid query 2: Subquery returns more than 1 row
что я не так делаю?
4. tuareg - 31 Июля, 2012 - 10:28:22 - перейти к сообщению
В данном случае подзапрос (а правильно это называется так ) Должен вернуть только одну строку(один результат), а у Вас он возвращает несколько строк
5. белочка - 31 Июля, 2012 - 10:37:52 - перейти к сообщению
ммм... потестировала. в тех запросах где caps.set_code во всех строках NULL все нормуль. а в других запросах выдает то, что написала.
и как быть? set_code повторяется в таблице caps, но он уникален в таблице cap_sets. тойсть запрос должен выдавать одно и тоже значание каждый раз, как видит определенный caps.set_code
и как быть? set_code повторяется в таблице caps, но он уникален в таблице cap_sets. тойсть запрос должен выдавать одно и тоже значание каждый раз, как видит определенный caps.set_code
6. tuareg - 31 Июля, 2012 - 10:53:28 - перейти к сообщению
Давайте проще.
Во первых, сколько результатов вернет запрос
Во первых, сколько результатов вернет запрос
CODE (SQL):
скопировать код в буфер обмена
скопировать код в буфер обмена
- SELECT cap_sets.set_code AND cap_sets.set_name FROM caps, cap_sets WHERE caps.set_code = cap_sets.set_code
Во вторых, что вообще за синтаксис такой? Какой AND?