Я знаю, что это полу-старое, но как насчет этого пути:
<DataTemplate x:Key="italComboWM">
<TextBlock FontSize="11" FontFamily="Segoe UI" FontStyle="Italic" Text="--Select an item--" />
</DataTemplate>
<ComboBox EmptySelectionBoxTemplate="{StaticResource italComboWM}" />
Поскольку вы не указали связь между a
и b
, это приводит к перекрестному произведению. Это эквивалентно:
SELECT *
FROM a
CROSS JOIN b
WHERE b.id IN (1, 2, 3)
Он объединит каждую строку в a
с тремя выбранными строками из b
. Если a
имеет 100 строк, результат будет 300 строк.
То, что вы используете, это Multitable SELECT
.
Multitable SELECT (M-SELECT)
аналогичен операции соединения. Вы выбираете значения из разных таблиц, используете предложениеWHERE
, чтобы ограничить количество возвращаемых строк, и отправляете полученную в результате единственную таблицу обратно отправителю запроса.Разница с
blockquote>M-SELECT
заключается в том, что он возвращает таблицы умножения в качестве набора результатов.
Для получения дополнительной информации: https://dev.mysql.com/worklog/task/?id=358Другими словами, вы запрашиваете является:
SELECT * FROM a CROSS JOIN b WHERE b.id in (1,2,3)