Я думаю, что этот запрос будет делать то, что вы хотите. Суммирует значения int
для каждой строки, где значение types
включает в себя значение int
целевой строки:
SELECT t1.*, SUM(t2.int) AS family
FROM types t1
JOIN types t2 ON t2.types & t1.int != 0
GROUP BY t1.id, t1.title, t1.int, t1.types
Вывод:
id title int types family
1 foo 1 7 7
2 bar 2 1 5
3 baz 4 3 1
Peter van der Linden's Expert C Programming: Deep C Secrets
C: Справочное руководство Харбисона и Стила
Это не учебник, а лучшая книга по Си (даже, на мой взгляд, даже по K & R). В сочетании с K & R (или любым другим учебным пособием) вы получите отличную основу в C.
Я хотел бы прочитать Практика программирования и Программирование жемчуга . Обе книги довольно лаконичны и ориентированы на Си
I'd say to eschew the books entirely. Pick a project, any project (although not too large), and implement it in C. There's no substitute for simply jumping in and doing it. K&R gives enough knowledge that you can begin stumbling along and gaining the experience that makes for true good learning.
Мне нравятся Указатели на C Кеннета А. Рика. Я не буду говорить, что это лучше, чем K & R, но я определенно нашел его более дружелюбным и легче учиться. Я начал с K & R, но на самом деле не изучал C, пока не взял эту книгу.
Редактировать : Я также только что узнал, что цена этой книги взлетела с тех пор, как я ее купил. Так что, хотя моя рекомендация остается в силе, я не могу рекомендовать ее по текущей запрашиваемой цене. Так что, если вы можете найти использованную копию или копию в библиотеке, то стоит получить, но по его нынешней цене есть другие книги, которые в основном так же хороши за гораздо меньшие деньги.
Программирование на Эксперте C - это книга, которую я считаю достойной, по крайней мере, просмотреть, как только вы освоите язык C, хотя я не решается прямо рекомендовать его. С другой стороны, он содержит множество полезных советов и подсказок, а также несколько очень полезных советов. С минусовой стороны эти уловки и советы плохо организованы, похоронены среди не очень полезных советов, и половина книги, кажется, заполнена глупыми шутками, в стороне и несущественными (но иногда забавными) историями. Поэтому я позаимствовал бы это у библиотеки, но не заплатил бы за это деньги.
Но, как вы, без сомнения, понимаете, вы никогда по-настоящему не выучите C, пока не напишите C.
Программирование на Expert C - это книга, которую я считаю достойной хотя бы просмотреть после того, как вы освоили язык C, хотя я не решаюсь рекомендовать ее. С другой стороны, он содержит множество полезных советов и подсказок, а также несколько очень полезных советов. С минусовой стороны эти уловки и советы плохо организованы, похоронены среди не очень полезных советов, и половина книги, кажется, заполнена глупыми шутками, в стороне и несущественными (но иногда забавными) историями. Поэтому я позаимствовал бы это у библиотеки, но не заплатил бы за это деньги.
Но, как вы, без сомнения, понимаете, вы никогда по-настоящему не выучите C, пока не напишите C.
Программирование на Expert C - это книга, которую я считаю достойной хотя бы просмотреть после того, как вы освоили язык C, хотя я не решаюсь рекомендовать ее. С другой стороны, он содержит множество полезных советов и подсказок, а также несколько очень полезных советов. С минусовой стороны эти уловки и советы плохо организованы, похоронены среди не очень полезных советов, и половина книги, кажется, заполнена глупыми шутками, в стороне и несущественными (но иногда забавными) историями. Поэтому я позаимствовал бы это у библиотеки, но не заплатил бы за это деньги.
Но, как вы, без сомнения, понимаете, вы никогда по-настоящему не изучите C, пока не напишите C.
С другой стороны, эти уловки и советы плохо организованы, они утопают в не очень полезных советах, а половина книги, кажется, заполнена неубедительными шутками, в стороне и несущественными (но иногда забавными) историями. Поэтому я позаимствовал бы это у библиотеки, но не заплатил бы за это деньги.Но, как вы, без сомнения, понимаете, вы никогда по-настоящему не изучите C, пока не напишите C.
С другой стороны, эти уловки и советы плохо организованы, они утопают в не очень полезных советах, а половина книги, кажется, заполнена неубедительными шутками, в стороне и несущественными (но иногда забавными) историями. Поэтому я позаимствовал бы это у библиотеки, но не заплатил бы за это деньги.Но, как вы, без сомнения, понимаете, вы никогда по-настоящему не выучите C, пока не напишите C.
Отличная книга для изучения C: C BY DISSECTION Основы программирования на C, автор Al Kelley & Ira Pohl
Очень легко читать с множеством замечательных примеров программирования.
«Начало C» Ивор Хортон (3-е издание) из APress - отличная вводная книга по программированию на C. Эта книга очень полная и не является справочным пособием, но является хорошим учебником от начала до конца по всему на языке C.
Я также мог бы порекомендовать читать программы на Си. К сожалению, я не сделал этого достаточно, чтобы рекомендовать конкретные.
Снова возьмите книгу K & R и на этот раз выполняйте упражнения. Затем сравните ваш код с кодом в K & R и посмотрите, имеет ли он подобную элегантность в интерфейсах функций и структурах данных. Это не книга, чтобы быстро прочитать и перейти к следующей книге. Он содержит много ценной информации, и упражнения помогут вам понять некоторые из них, которые вы, вероятно, пропустили при первом чтении.
Лучшим учебником по КИ является C: Подход к разработке программного обеспечения Питера А. Дарнелла и Филиппа Е. Марголиса. Хотя он (незаслуженно) не так известен, как другие книги, я нашел его очень читабельным, и он обрабатывает все детали, которые пропускает K & R.
У него есть два недостатка:
Редактировать: Другая интересная книга - Часто задаваемые вопросы по программированию на С Стива Саммита. Хотя у меня нет этой книги в печати, сопутствующий веб-сайт мне очень помог в понимании менее очевидных особенностей C.
Есть несколько кратких, но полезных обзоров в (Русском зеркале) ACCU , для начального C и для продвинутого C .
K&R essentially covers everything you need to know about C, and even implements a few data structures that are commonly used. If you're using *nix and want to learn how to take advantage of the operating system, Advanced Programming in the UNIX Environment, Third Edition is a good reference/guide to common uses such as reading a file, creating threads, etc. Sample code is in C.