|
|
|
отсутсвующее значение
|
|||
|---|---|---|---|
|
#18+
всем привет! как в секции WHERE использовать отсутствующее значение? есть 3-и вспомогательные таблицы, завязанные на 4-ю по полю (из неё и получаются данные) при запросе в одной из 3-х таблиц может не быть значения, но в 2-х других они точно есть (хотя может быть и только в одной) как правильно составить запрос, что бы он вернул данные основываясь на совпадениях из оставшихся 2-х таблиц (или одной), при этом в условии должны быть все (возможные) три значения из 3-х таблиц Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. в table1 нет category_id равным 1, во всех остальных указанные ID есть, как при запросе пропустить отсутствующее значение, но основываясь на других вернуть данные из таблицы table0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2015, 08:11:17 |
|
||
|
отсутсвующее значение
|
|||
|---|---|---|---|
|
#18+
woojinвсем привет! как в секции WHERE использовать отсутствующее значение? есть 3-и вспомогательные таблицы, завязанные на 4-ю по полю (из неё и получаются данные) при запросе в одной из 3-х таблиц может не быть значения, но в 2-х других они точно есть (хотя может быть и только в одной) как правильно составить запрос, что бы он вернул данные основываясь на совпадениях из оставшихся 2-х таблиц (или одной), при этом в условии должны быть все (возможные) три значения из 3-х таблиц Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. в table1 нет category_id равным 1, во всех остальных указанные ID есть, как при запросе пропустить отсутствующее значение, но основываясь на других вернуть данные из таблицы table0 если вы используете некую таблицу в WHERE групе, то вы убиваете LEFT и оно становится просто JOIN на нее. т.е. select * from A left join B -- де факто это просто JOIN здесь on A.id = B.id where B.name = 'zz' что бы получился реальный ЛЕФТ ЖОИН надо дополнительные условия ставитъ в ON группу: select * from A left join B -- реальный LEFT JOIN здесъ on A.id = B.id AND B.name = 'zz' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2015, 14:48:44 |
|
||
|
отсутсвующее значение
|
|||
|---|---|---|---|
|
#18+
javajdbc, спасибо! сделал так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. вот что получается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.04.2015, 22:14:28 |
|
||
|
отсутсвующее значение
|
|||
|---|---|---|---|
|
#18+
woojinможно как то из этого на стадии запроса MySQL вычленить строку с самым большим количеством результатов, т.е. (именно в этом выводе) первую строку, с другими параметрами строка может быть третьей, пятой, пятнадцатой!... ORDER BY ... LIMIT ... ? Или как вариант: ссыло ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2015, 05:04:11 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=139&tid=1833267]: |
0ms |
get settings: |
5ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 218ms |
| total: | 372ms |

| 0 / 0 |
