|
|
|
| Добрый день товарищи!
Мучает нерешенная задача. Есть две таблицы:
1. auto
tip | model | prodano |
--------------------------------------
1 | камаз |..........0.......|
2 | маз.....|.........1........|
3 | газ...... |.........0........|
1 |краз.....|.........0........|
2. tip
id...|.........tip..........|
-----------------------------
1....|..самосвал...|
2....|......тягач........|
3....|.....грузовик..|
auto.tip связана с tip.id
Прошу помочь составить запрос для выборки из таблицы tip всех уникальных значений поля tip которые не проданы (auto.prodano != 1)
Спасибо! | |
|
|
|
|
автор: ..... (19.03.2010 в 17:10) |
|
|
для: jazz2000
(19.03.2010 в 16:49)
| | почему именно из tip , и в каком смысле уникальных ?
Если вроде такого
SELECT * FROM auto LEFT JOIN tip
ON auto.tip = tip.id
WHERE auto.prodano = 0
Выберется два раза самосвал и один раз грузовик
Или нужно всего по разу и если хоть один из самосвалов не соответствует (auto.prodano !=1) значит самосвал в результате нужен или не нужен ? | |
|
|
|
|
|
|
|
для: .....
(19.03.2010 в 17:10)
| | Спасибо за помощь! Начинаю по тихоньку разбираться. Я слабоват в MySQL и сейчас колдую с вашим кодом что бы результат был таков: один раз выдало самосвал и один раз грузовик | |
|
|
|
|
автор: ..... (19.03.2010 в 21:07) |
|
|
для: jazz2000
(19.03.2010 в 17:35)
| | Т.е просто добавить GROUP BY tip.tip ?
вроде тогда это tip.tip должно быть явно указано, т.е вместо SELECT * должен быть список SELECT auto.id, tip.tip.... Но я не проверял, и возможно просто достаточно того что tip.tip есть в списке возвращаемых полей, но стараюсь вручную указывать | |
|
|
|
|
автор: ..... (19.03.2010 в 21:25) |
|
|
для: .....
(19.03.2010 в 21:07)
| | что-то неподумал GROUP BY auto.tip должно-бы быть лучше в таком запросе.
Но как тоже начинающий сомневаюсь что это оптимально , и забыл сказать что странно то что в первой таблице нет первичного ключа. Запросы лучше можно понять с EXPLAIN SELECT ,потестить некогда :) | |
|
|
|
|
|
|
|
для: .....
(19.03.2010 в 21:25)
| | Спасибо за помощь, Все сделано. Тот код, что выполняет все необходимое для меня выглядит так
SELECT DISTINCT tip.tip tip.id
FROM tip LEFT JOIN auto
ON tip.id = auto.tip
ORDER BY tip.tip
|
| |
|
|
|